绑定Listview的GridView的DataGridCell的TextBlock

时间:2015-05-01 14:47:02

标签: c# xaml mvvm data-binding

我有ObservableCollection个模型对象,我试图在DataGridCells GridView ListView中显示这些对象。对于这个简化的例子,让我们说我的模型对象都有" MyString,"并且我试图展示" MyString"在每行的TextBlockDataGridCell

ObservableCollection添加或删除这些模型对象时,ListView显示正确的行数,但单个单元格为空。我如何正确绑定它们?我应该使用DataContext还是ItemSource,如果是,请问在哪里?这是一个这样的绑定尝试的单列示例。

<ListView ItemsSource="{Binding MyObservableCollection}">
    <ListView.View>
        <GridView>
            <GridViewColumn>
                <GridViewColumnHeader Content="My String Data" />
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <DataGridCell>
                            <TextBlock Text="{Binding Path=MyString}">
                            </TextBlock>
                        </DataGridCell>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
        </GridView>
    </ListView.View>
</ListView>
编辑:Per Michal Ciechan,我已经在我的模型课上实现了INotifyPropertyChanged,但它似乎没有改变任何东西。然而,一旦他们进入集合中,我实际上不会更改这些对象上的字段,因此这可能不是正确的方法。这是一些示例代码。

模特:

public class MyModel : INotifyPropertyChanged
{
    public string MyString;
    public event PropertyChangedEventHandler PropertyChanged;
}

ViewModel:

ObservableCollection<MyModel> MyObservableCollection = new ObservableCollection<MyModel>();

public void AddModelToCollection()
{
    MyModel mm = new MyModel();
    mm.MyString = "HELLO WORLD";
    MyObservableCollection.Add(mm);
}

0 个答案:

没有答案