gpt4 book ai didi

c# - ListView - 将 listviewitem 数据绑定(bind)到对象

转载 作者:太空宇宙 更新时间:2023-11-03 21:28:18 25 4
gpt4 key购买 nike

假设我有以下 ListView:

<ListView Name="listView">
<ListView.View>
<GridView>
<GridViewColumn Header="IsTrue" DisplayMemberBinding="{Binding Path=IsTrue}"/>
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding Path=name}" />
</GridView>
</ListView.View>
</ListView>

以及我要绑定(bind)的以下测试类:

public class Test
{
public Test(Boolean IsTrue, string name)
{
this.IsTrue = IsTrue;
this.name = name;
}

public Boolean IsTrue { get; set; }
public string name { get; private set; }
}

这是我用来添加 ListViewItem 的命令:

Test a = new Test(false, "a");
listView.Items.Add(a);

现在,当我尝试更改对象 IsTrue 值时,ListView 上的 IsTrue 值不会更新。为什么会这样?

最佳答案

public class Test : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;

protected virtual void OnPropertyChanged(PropertyChangedEventArgs args)
{
var e = PropertyChanged;
if (e != null)
e(this, args);
}

private bool isTrue;
public Boolean IsTrue
{
get { return isTrue; }
set
{
if (isTrue == value)
return;
isTrue = value;
OnPropertyChanged(new PropertyChangedEventArgs("IsTrue"));
}
}

public string Name { get; private set; }

public Test(Boolean isTrue, string name)
{
this.isTrue = isTrue;
Name = name;
}
}

关于c# - ListView - 将 listviewitem 数据绑定(bind)到对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25648747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com