Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 绑定Listview的文本块';s GridView';s数据网格单元_C#_Xaml_Mvvm_Data Binding - Fatal编程技术网

C# 绑定Listview的文本块';s GridView';s数据网格单元

C# 绑定Listview的文本块';s GridView';s数据网格单元,c#,xaml,mvvm,data-binding,C#,Xaml,Mvvm,Data Binding,我有一个模型对象的可观察集合,我正试图在列表视图中的网格视图的DataGridCells中显示它。对于这个简化的示例,假设我的模型对象都有“MyString”,并且我试图在每行的DataGridCell内部的TextBlock中显示“MyString” 当observateCollection添加或删除这些模型对象时,ListView显示正确的行数,但单个单元格为空。我怎样才能把它们绑好?我应该使用DataContext还是ItemSource,如果是,在哪里?下面是一个这样的绑定尝试的单列示例

我有一个模型对象的
可观察集合
,我正试图在
列表视图
中的
网格视图
DataGridCells
中显示它。对于这个简化的示例,假设我的模型对象都有“MyString”,并且我试图在每行的
DataGridCell
内部的
TextBlock
中显示“MyString”

observateCollection
添加或删除这些模型对象时,
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>
ViewModel:

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

public void AddModelToCollection()
{
    MyModel mm = new MyModel();
    mm.MyString = "HELLO WORLD";
    MyObservableCollection.Add(mm);
}
ObservableCollection MyObservableCollection=新的ObservableCollection();
public void AddModelToCollection()
{
MyModel mm=新的MyModel();
mm.MyString=“你好,世界”;
MyObservableCollection.Add(毫米);
}

公共字符串MyString是一个字段,而不是属性。不能绑定到字段。只能绑定到属性

private string _myString;
public string MyString
{
    get
    {
        return _myString;
    }
    set
    {
        _myString = value;
        OnPropertyChanged("MyString");
    }
}
我将把
OnPropertyChanged
的实现留给您

澄清

这是一个:

注意它有一个getter和setter。编译器将其转换为两种方法,一种用于获取值,另一种用于设置值

这是一个:

注意,它没有getter或setter。它只是指向堆栈上某个值的指针

重要的是:

在WPF中,绑定不适用于字段。它们仅适用于属性
因此,在尝试绑定字段之前设置字段的值并不重要。绑定不会查找字段,因此不会看到它。

公共字符串MyString是一个字段,而不是属性。不能绑定到字段。只能绑定到属性

private string _myString;
public string MyString
{
    get
    {
        return _myString;
    }
    set
    {
        _myString = value;
        OnPropertyChanged("MyString");
    }
}
我将把
OnPropertyChanged
的实现留给您

澄清

这是一个:

注意它有一个getter和setter。编译器将其转换为两种方法,一种用于获取值,另一种用于设置值

这是一个:

注意,它没有getter或setter。它只是指向堆栈上某个值的指针

重要的是:

在WPF中,绑定不适用于字段。它们仅适用于属性
因此,在尝试绑定字段之前设置字段的值并不重要。绑定不会查找字段,因此不会看到它。

公共字符串MyString是一个字段,而不是属性。不能绑定到字段。只能绑定到属性

private string _myString;
public string MyString
{
    get
    {
        return _myString;
    }
    set
    {
        _myString = value;
        OnPropertyChanged("MyString");
    }
}
我将把
OnPropertyChanged
的实现留给您

澄清

这是一个:

注意它有一个getter和setter。编译器将其转换为两种方法,一种用于获取值,另一种用于设置值

这是一个:

注意,它没有getter或setter。它只是指向堆栈上某个值的指针

重要的是:

在WPF中,绑定不适用于字段。它们仅适用于属性
因此,在尝试绑定字段之前设置字段的值并不重要。绑定不会查找字段,因此不会看到它。

公共字符串MyString是一个字段,而不是属性。不能绑定到字段。只能绑定到属性

private string _myString;
public string MyString
{
    get
    {
        return _myString;
    }
    set
    {
        _myString = value;
        OnPropertyChanged("MyString");
    }
}
我将把
OnPropertyChanged
的实现留给您

澄清

这是一个:

注意它有一个getter和setter。编译器将其转换为两种方法,一种用于获取值,另一种用于设置值

这是一个:

注意,它没有getter或setter。它只是指向堆栈上某个值的指针

重要的是:

在WPF中,绑定不适用于字段。它们仅适用于属性
因此,在尝试绑定字段之前设置字段的值并不重要。绑定不会查找字段,因此不会看到它。

威尔是对的,您的模型类需要将
MyString
作为属性而不是字段

您可以绑定到任何公共语言运行库(CLR)对象的公共属性、子属性以及索引器。绑定引擎使用CLR反射来获取属性的值。或者,实现ICustomTypeDescriptor或具有注册的TypeDescriptionProvider的对象也可以使用绑定引擎。 有关如何实现可以用作绑定源的类的更多信息,请参阅本主题后面的为绑定源实现类


Will是对的,您的模型类需要将
MyString
作为属性而不是字段

您可以绑定到任何公共语言运行库(CLR)对象的公共属性、子属性以及索引器。绑定引擎使用CLR反射来获取属性的值。或者,实现ICustomTypeDescriptor或具有注册的TypeDescriptionProvider的对象也可以使用绑定引擎。 有关如何实现可以用作绑定源的类的更多信息,请参阅本主题后面的为绑定源实现类


Will是对的,您的模型类需要将
MyString
作为属性而不是字段

您可以绑定到任何公共语言运行库(CLR)对象的公共属性、子属性以及索引器。绑定引擎使用CLR反射来获取属性的值。或者,实现ICU的对象
public class MyModel : INotifyPropertyChanged
{
    private string _myString;
    public string MyString
    {
        get
        {
            return _myString;
        }
        set
        {
            _myString = value;
            OnPropertyChanged("MyString");
        }
    }
}