添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
public partial class MainWindow : Window public ObservableCollection PList { get; set; } public MainWindow() InitializeComponent(); PList = new ObservableCollection(); PList.Add(new Person { IsFemale = true, Name = "小红" }); PList.Add(new Person { IsFemale = false, Name = "小明" }); this.DataContext = this; public class Person public bool IsFemale { get; set; } public string Name { get; set; }
XAML代码:
<Window x:Class="ListBox用法.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:ListBox用法"
        Title="MainWindow" Height="350" Width="525">
    <ListBox ItemsSource="{Binding PList}">
        <ListBox.ItemTemplate>
            <DataTemplate DataType="local:Person">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="auto"/>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>
                    <Image x:Name="img">
                        <Image.Style>
                            <Style TargetType="Image">
                                <Setter Property="Width" Value="16"/>
                                <Setter Property="Height" Value="16"/>
                                <Style.Triggers>
                                    <DataTrigger Binding="{Binding IsSelected,RelativeSource={RelativeSource AncestorType={x:Type ListBoxItem}}}" Value="true">
                                        <Setter Property="Width" Value="24"/>
                                        <Setter Property="Height" Value="24"/>
                                    </DataTrigger>
                                </Style.Triggers>
                            </Style>
                        </Image.Style>
                    </Image>
                    <TextBlock Grid.Column="1" Text="{Binding Name}"/>
                </Grid>
                <DataTemplate.Triggers>
                    <DataTrigger Binding="{Binding IsFemale}" Value="true">
                        <Setter Property="Source" Value="./image/20140324072056503_easyicon_net_32.png" TargetName="img"/>
                    </DataTrigger>
                    <DataTrigger Binding="{Binding IsFemale}" Value="false">
                        <Setter Property="Source" Value="./image/20140324072142365_easyicon_net_32.png" TargetName="img"/>
                    </DataTrigger>
                </DataTemplate.Triggers>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
</Window>

其中用了RelativeSource来寻找上级ListBoxItem对象来进行绑定达到目的。

作者:FoolRabbit
出处:http://blog.csdn.net/rabbitsoft_1987
欢迎任何形式的转载,未经作者同意,请保留此段声明!

介绍ItemTemplate用法以及在ItemTemplate模板中使用ListBoxItem属性的方法。实现如下效果(点击某一项的时候该项图片进行放大):C#代码:using System.Collections.ObjectModel;using System.Windows;namespace ListBox用法{ /// /// MainW
WPF提供了许多包装集合的控件。这里包括了ListBox列表控件、ComboBox组合框控件,还有其他的更多的空间我们就不介绍了。 ListBox是个典型的ItemsControl。 首先,我们看看ListBox的自动包装。WPFListBox在显示功能上比Winform Form或 者ASP.NET的ListBox要强大很多。传统的ListBox只能将条目以字符串的形式显示,而 WPFListBox除了可以显示中规中矩的字符串条目还能够显示更多的元素, 如CheckBox、Button、RadioBu
<ListBox Name="list_axis" DisplayMemberPath="Name" SelectedValuePath="Num" SelectionChanged="list_axis_SelectionChanged"/> DisplayMemberPath属性:显示的值 SelectedValuePath属性:在选中某个Item时我们可以通过ListBox的SelectedValue属性获取的值的类型 我们先构建一个list
项目中经常使用需要根据搜索条件查询数据,然后用卡片来展示数据。用卡片展示数据时,界面的宽度发生变化,希望显示的卡片数量也跟随变化。WrapPanel虽然也可以实现这个功能,但是将多余的部分都留在行尾,十分不美观,最好是能够将多余的宽度平分在每个ListBoxItem之间,比较美观,也符合项目需求。如下便是我自己实现的Panel: using System; using System.Collect...
大周末的接着上一篇玩耍TreeView,这二天又再次去玩耍ListBox;毕竟是我的最爱,没办法就喜欢玩耍他;闲话也不多扯了,直接看咱们最终效果:2、原来一直ItemTemplate,这次直接ListBoxItemTemplate:<Setter Property="Template"> <Setter.Value>
ListBox控件 ListBox控件继承自ContentControl类,是一个容器类的控件,向ListBox控件中包含ListBoxItem元素向容器中添加成分,也可以添加其他任意的控件。 <ListBox x:Name="listBox" Margin="5" Height="auto" VerticalAlignment="Top"> <ListBoxItem> <Image Source="C:\王祺\学校\CSharp学习\Code\d590c
包含可选项列表。 ListBoxItemsControl,这意味着它可以包含任何类型的对象的集合 (例如字符串、图像或面板) 。有关更多信息,请参见ItemsControl类。 ListBox中的多个项是可见的,不同于ComboBox,只有选定项可见,除非IsDropDownOpen属性为true。SelectionMode属性确定ListBox中的多个项是否一次可选择。 SelectionMode属性确定用户一次可以选择多少项。可以将属性设置为Single(默认)...
<Window x:Class="ListBox的使用.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWind
<ListBox Name="myListBox"> <ListBoxItem>Item 1</ListBoxItem> <ListBoxItem>Item 2</ListBoxItem> <ListBoxItem>Item 3</ListBoxItem> </ListBox> 2. 在代码中向 ListBox 中添加数据项。 ```csharp myListBox.Items.Add("Item 4"); myListBox.Items.Add("Item 5"); 3. 通过数据绑定将数据源与 ListBox 关联。 ```csharp List<string> items = new List<string> { "Item 6", "Item 7", "Item 8" }; myListBox.ItemsSource = items; 4. 处理 ListBox 的选择事件。 ```csharp private void myListBox_SelectionChanged(object sender, SelectionChangedEventArgs e) if (myListBox.SelectedItem != null) MessageBox.Show(myListBox.SelectedItem.ToString()); 这些是 WPF ListBox 的基本用法。您还可以自定义 ListBox 的外观和行为,如设置选项模板,指定选项容器样式等等。