0

//你好!我需要将我的数据放入包含多个列的列表框中我看到了这个链接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" });
        }
    }
4

1 回答 1

0

您需要在 Window1.xaml.cs 类的构造函数中设置包含控件DataContext的(例如 Window1)的属性,如下所示:WindowListBox

public Window1()
{
    MyViewModel vm = new MyViewModel();

    this.DataContext = vm;
}

下一步是将ItemsSourceListBox 控件(内部XAML)的Items属性设置为您在 ViewModel 类中提供的属性:

<ListBox ItemsSource="{Binding Path=Items}">
    <!--Other XAML-->
</ListBox>

此外,您还应该INotifyPropertyChanged为您的MyListBoxItem类实现接口,该接口在 MSDN中进行了说明。这是因为MVVM在您的 WPF 应用程序中实现模式。要求您实现更改通知onewaytwoway数据绑定才能工作(请参阅此以了解有关DataBinding的更多信息)。

这是MSDN 上对 MVVM的更详细解释。

于 2012-06-18T15:19:49.310 回答