//你好!我需要将我的数据放入带有多个列的listBox中,我看到了这个链接stackoverflow.com...但是它谈到了所有事情而没有提到我可以在列中添加项目的方式,请你解释如何将数据项添加到列中非常感谢。我成功完成了以下事情
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn Header="1" Width="100" DisplayMemberBinding="{Binding Path=Field1}" />
<GridViewColumn Header="2" Width="100" DisplayMemberBinding="{Binding Path=Field2}" />
<GridViewColumn Header="3" Width="100" DisplayMemberBinding="{Binding Path=Field3}" />
</GridView.Columns>
</GridView>
</ListView.View>`
public sealed class MyListBoxItem
{
public string Field1 { get; set; }
public string Field2 { get; set; }
public string Field3 { get; set; }
}
public sealed class MyViewModel
{
public ObservableCollection<MyListBoxItem> Items { get; private set; }
public MyViewModel()
{
Items = new ObservableCollection<MyListBoxItem>();
Items.Add(new MyListBoxItem { Field1 = "One", Field2 = "Two", Field3 = "Three" });
}
}
答案 0 :(得分:0)
您需要在Window1.xaml.cs类的构造函数中设置包含DataContext
控件的Window
(比如它是Window1)的ListBox
属性,如下所示:
public Window1()
{
MyViewModel vm = new MyViewModel();
this.DataContext = vm;
}
下一步是将ListBox控件的ItemsSource
属性(在XAML
内)设置为您在ViewModel类中可用的Items
属性:
<ListBox ItemsSource="{Binding Path=Items}">
<!--Other XAML-->
</ListBox>
此外,您还应该为INotifyPropertyChanged
课程实施MyListBoxItem
界面,其解释为here in MSDN。这是因为在WPF应用中实现了MVVM
模式。要求您实施oneway
或twoway
数据绑定的更改通知才能生效(请参阅此内容以了解有关DataBinding的更多信息)。
以下是MVVM on MSDN的更详细说明。