关闭

itemSource绑定

579人阅读 评论(0) 收藏 举报

1,和ComboBox一样,ListBox也可以通过ItemsSource和DisplayMemberPath来绑定并显示所要显示的内容。

注意,DisplayMemberPath只能显示数据源中的一个属性。若要想同时显示多个属性到列表项中,要用到ItemTemplate属性,对列表进行格式化,在ItemTemplate里还要用到DataTemplate元素来描述数据对象的可视化结构,即绑定到UI上的数据最终将会以什么形式显示。

eg:

后台数据模板:

    /// <summary>
    /// 记录点、线设施的属性信息
    /// </summary>
    public class PropertyModel
    {
        /// <summary>
        /// 字段
        /// </summary>
        public string zhiduan { get; set; }

        ///<summary>
        /// 属性
        /// </summary>
        public string shuxing { get; set; }
    }

 

 

绑定到ListBox:

‍MyListBoxToShowProperty.ItemsSource=MyObservableCollectionOfPropertyModel;//绑定数据源

 

前台ListBox:

<Grid x:Name="LayoutRoot"Background="Transparent">
     <ScrollViewerVerticalScrollBarVisibility="Auto"HorizontalScrollBarVisibility="Auto">
      <Border Style="{StaticResourceCommonBorder}">           
      <ListBoxx:Name="MyListBoxToShowProperty" Margin="10">
       <ListBox.ItemTemplate>
       <DataTemplate>
         <StackPanelOrientation="Horizontal">
          <TextBlockText="{Binding zhiduan}" Margin="5,2,0,0"/> 
          <TextBlockText="{Binding shuxing}" Margin="5,2,0,0" Foreground="OrangeRed"/>   
      </StackPanel>        
     </DataTemplate>   
    </ListBox.ItemTemplate>  
   </ListBox>
  </Border>
  </ScrollViewer>     
    </Grid>

MyListBoxToShowProperty.ItemsSource=MyObservableCollectionOfPropertyModel;//绑定数据源MyListBoxToShowProperty.ItemsSource=MyObservableCollectionOfPropertyModel;//绑定数据源

 

 

2:在ListBox中,默认列表项每一行显示一项,可以通过ItemsPanel属性修改列表项的显示方式

       <ListBox>
            <ListBox.ItemsPanel>
               <ItemsPanelTemplate >
                   <StackPanel Orientation="Horizontal"/>
               </ItemsPanelTemplate>
           </ListBox.ItemsPanel>            
           <ListBoxItem Content="选项1" Width="50" />
           <ListBoxItem Content="选项2" Width="50" />
           <ListBoxItem Content="选项3" Width="50" />
           <ListBoxItem Content="选项4" Width="50" />
        </ListBox>

 

3:使用SL自带的DataGrid来显示一条记录的话是一条长长的UI,故可以使用ListBox来显示一条记录,ListBox的每一行显示两项:字段和属性,这样做出的UI较之前者视觉上更好。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1268038次
    • 积分:16374
    • 等级:
    • 排名:第628名
    • 原创:372篇
    • 转载:805篇
    • 译文:0篇
    • 评论:94条
    最新评论