Alo*_*azi 6 data-binding wpf datagrid
我正试图绑定List一个DataGrid.这是代码片段:
public class Parson
{
public string LastName { get; set; }
public string FirstName { get; set; }
public Parson(string lastName, string firstName)
{
LastName = lastName;
FirstName = firstName;
}
}
public class Persons : List<Parson>
{
// Parameterless constructor
public Persons()
{
}
public new void Add(Person parson)
{
base.Add(parson);
}
}
Run Code Online (Sandbox Code Playgroud)
背后的代码:
Persons persons = new Persons();
persons.Add(new Parson("New","Person");
dataGrid1.DataContext = persons;
Run Code Online (Sandbox Code Playgroud)
XAML:
<my:DataGrid Name="dataGrid1"
xmlns:my="http://schemas.microsoft.com/wpf/2008/toolkit"
CanUserAddRows="True"
ItemsSource="{Binding}"
AutoGenerateColumns="False">
<my:DataGrid.Columns>
<my:DataGridTextColumn Header="First Name" Binding="{Binding Path=FirstName}"/>
<my:DataGridTextColumn Header="Last Name" Binding="{Binding Path=LastName}"/>
</my:DataGrid.Columns>
</my:DataGrid>
Run Code Online (Sandbox Code Playgroud)
结果是显示一个空网格!谁知道为什么?
(注意:此答案在.NET Framework v4.0中得到验证):
一个简单的,由4部分组成的操作......
AutoGenerateColumns="False"(你应该能够手动完成这个操作,而不是自动完成)ItemsSource="{Binding}",它通知网格它将从设计时未定义的源获取它的列和行数据.Binding="{Binding Path=UniqueID}".请注意,Path之后的值是内插的,因此请注意区分大小写.对于List <>,您要定位的值可能是目标List <>中对象的属性名称之一.根据DataGrid中每列的需要冲洗并重复多次.{gridControlName}.DataContext = {target-List<>}加载表单时,其网格应自动填充List <>中对象的内容.
尝试设置 ItemsSource 而不是 DataContext,并ItemsSource={Binding}从 XAML 中删除。这可能会起作用。
编辑:
我刚刚检查了我编写的一些使用相同 DataGrid 控件(WPF Toolkit)的代码,并且实际上我设置了 ItemsSource 而不是 DataContext。如果您需要示例,请告诉我。
| 归档时间: |
|
| 查看次数: |
37954 次 |
| 最近记录: |