我正在尝试编写示例代码来测试问题@ Binding a grid with two datasources in silverlight
我有一个XAML
<Grid x:Name="LayoutRoot" Background="White">
<sdk:DataGrid AutoGenerateColumns="False" ItemsSource="{Binding WrapperClass}">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn Header="Name" Binding="{Binding People.Name, Mode=TwoWay}"/>
</sdk:DataGrid.Columns>
</sdk:DataGrid>
</Grid>
我的模型代码
private ItemWrapper _wrapperClass;
public ItemWrapper WrapperClass
{
get
{
if (_wrapperClass == null)
_wrapperClass = new ItemWrapper();
return _wrapperClass;
}
}
项目包装器和人员类定义
public class ItemWrapper
{
private ObservableCollection<Person> _people;
public ObservableCollection<Person> People
{
get
{
return _people;
}
}
public ItemWrapper()
{
_people = new ObservableCollection<Person>();
_people.Add(new Person { ID = 1, Name = "Name1", JobTitle = 1 });
_people.Add(new Person { ID = 2, Name = "Name2", JobTitle = 2 });
}
}
public class Person
{
public int ID { get; set; }
public string Name { get; set; }
public int JobTitle { get; set; }
}
当我运行程序时,如果绑定属性有效,我希望名称显示在网格中,但事实并非如此。它只显示标题。我在这里错过了什么吗? 谢谢,
答案 0 :(得分:0)
试试这个..
<Grid x:Name="LayoutRoot" Background="White">
<sdk:DataGrid AutoGenerateColumns="False" ItemsSource="{Binding WrapperClass.People}">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn Header="Name" Binding="{Binding Name, Mode=TwoWay}"/>
</sdk:DataGrid.Columns>
</sdk:DataGrid>
干杯。