wpf如何绑定到List
本文关键字:List 绑定 何绑定 wpf | 更新日期: 2023-09-27 18:03:06
我试图将对象列表绑定到DataGrid,但得到了错误的值:对象类:
public class Attribute
{
public Attribute()
{
}
private string _name;
public string name
{
get { return _name; }
set { _name = value; }
}
private List<Value> _valueList = new List<Value>();
public List<Value> ValueList
{
get { return _valueList; }
set { _valueList = value; }
}
}
public class Value
{
private string _value;
public string value
{
get { return _value; }
set { _value = value; }
}
public override string ToString()
{
return _value.ToString();
}
}
我有一个对象列表:List<Attribute> attributes
attributeDataGrid.ItemsSource = attributes;
当我绑定时,我得到一个名称列正确的网格但是"ValueList"显示为"(Collection("而不是字符串。。。
我应该如何绑定列表?
Value
中的overriden ToString
方法未被调用,因为WPF在第二列中显示ValueList
的内容,即显示ValueList.ToString()
。你希望在第二栏看到什么?以逗号分隔的ValueList
中的值列表?
尝试以下对我有效的方法。
加载方法写下代码
Attribute atr = new Attribute();
atr.ValueList.Add(new Value() { value = "One" });
atr.ValueList.Add(new Value() { value = "Two" });
atr.ValueList.Add(new Value() { value = "Three" });
atr.ValueList.Add(new Value() { value = "Four" });
dataGrid.DataContext = atr.ValueList;
在XAML文件上尝试低于
<DataGrid x:Name="dataGrid" AutoGenerateColumns="False" ItemsSource="{Binding}" >
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding value}" />
</DataGrid.Columns>
</DataGrid>
希望这个代码片段能对你有所帮助。