绑定到集合元素的属性

时间:2013-08-24 19:52:22

标签: wpf data-binding mvvm datagrid

我在WPF应用程序中使用MVVM模式。 我的ViewModel中有ObservableCollection记录。

public enum RecordState
{
    NotChanged,
    Changed,
    Added,
    Deleted,
    AlreadyExist
}
public class Record
{
    public string FirstId { get; set; }
    public RecordState State { get; set; }
    public string CurrentId
    {
        get { return GetIdFromInstance(Instance); }
    }
    public MyStronglyTypedClass Instance { get; set; }
}

public class MyViewModel
{
    public ObservableCollection<Record> Records;
    // other code
}

在View中我有DataGrid。

<DataGrid ItemsSource="{Binding }" //>

我必须在ItemsSource =“{Binding / * here * /}”中编写(如果可能),以便将Datagrid项目更改为

Records[0].Instance
Records[1].Instance
Records[2].Instance
...
Records[Records.Count-1].Instance

1 个答案:

答案 0 :(得分:0)

{Binding}表示您的ItemsSource是该DataGrid的DataContext(可能继承自祖先元素)。 您应该做的是将顶级元素(Window,UserControl等..)的DataContext设置为ViewModel类。 然后加里建议:

<DataGrid ItemsSource="{Binding Records}">

你给出的关于动态元素的链接在这方面也是一样的,它增加了更复杂的元素绑定和DataTemplates。