请问WPF如何将多个Listbox数据绑定到一个Listbox上? 10
有2个listbox提供数据,第三个listbox显示前2个选中的元素.应该怎样写绑定呢?前两个listbox是多选模式.怎样在多选模式下监听每个元素的选中和未选中事件?...
有2个listbox提供数据,第三个listbox显示前2个选中的元素.
应该怎样写绑定呢?
前两个listbox是多选模式.
怎样在多选模式下监听每个元素的选中和未选中事件? 展开
应该怎样写绑定呢?
前两个listbox是多选模式.
怎样在多选模式下监听每个元素的选中和未选中事件? 展开
展开全部
listbox是显示数据集合的,为何你第三个listbox是用来显示单个元素的 。。。
如果你在后台有个类,比如Student。里面有个Name属性。第二个listbox绑定Student对象集合
class Student
{
public string Name { get; set; }
}
List<Student> Students = new List<Student>();
Students.Add(new Student() { Name = "aaa" });
Students.Add(new Student() { Name = "bbb" });
Students.Add(new Student() { Name = "ccc" });
listbox.ItemsSource = Students;
前台代码:
<StackPanel Width="200">
<ListBox x:Name="listbox" SelectedValuePath="Name" DisplayMemberPath="Name"/>
<TextBlock x:Name="txtName" Text="{Binding ElementName=listbox, Path=SelectedValue}" />
</StackPanel>
显示单个对象(第二个listbox的选中对象)的值用一个textblock就可以了么。直接将listbox的SelectedValue绑定到text属性上不就完事了。
如果你在后台有个类,比如Student。里面有个Name属性。第二个listbox绑定Student对象集合
class Student
{
public string Name { get; set; }
}
List<Student> Students = new List<Student>();
Students.Add(new Student() { Name = "aaa" });
Students.Add(new Student() { Name = "bbb" });
Students.Add(new Student() { Name = "ccc" });
listbox.ItemsSource = Students;
前台代码:
<StackPanel Width="200">
<ListBox x:Name="listbox" SelectedValuePath="Name" DisplayMemberPath="Name"/>
<TextBlock x:Name="txtName" Text="{Binding ElementName=listbox, Path=SelectedValue}" />
</StackPanel>
显示单个对象(第二个listbox的选中对象)的值用一个textblock就可以了么。直接将listbox的SelectedValue绑定到text属性上不就完事了。
更多追问追答
追问
好像没有说清楚.第3个listbox是显示前2个中选中的元素,前两个listbox是多选的.不是单选.因此也是一个集合.
前两个listbox是多选,怎样响应选中和未选中的事件呢?
追答
选中和未选中事件 = = 你以为是checkbox还是radiobutton啊。listbox是通过SelectionChanged事件来实行选项变化的。
多选的话,只要设置listbox的SelectionMode="Multiple"就可以了。此时获得的listbox的SelectedItems就是一个集合了,你可以把这个集合赋值给第三个listbox所绑定的那个集合身上。
具体的做法就是:第三个listbox后台绑定一个集合对象。然后在第一个和第二个listbox的SelectionChanged里对这个集合对象做增加项和删除项的操作。所以第三个listbox绑定的这个集合对象类型应该是ObservableCollection,这样就能通知到前台。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询