我使用Blend工具为我的一个类创建了xml示例数据,现在通过设置我的主Grid的以下属性成功地在设计器中显示它:
DataContext="{d:DesignData /SampleData/MySampleData.xaml}"
现在如何将子网格的DataContext
设置为对象的(复杂)属性?例如,假设我的主要对象是Person,它的复杂属性是具有子属性的地址,如Street,City,Country等,如何将我的地址网格的DataContext
设置为此Address属性,以便TextBoxes在该网格内开始在设计器中显示数据。这些TextBox直接绑定到Address的子属性,如:
<TextBox Text="{Binding City}" />
因此,如果我能够将Address Grid的DataContext设置为Address属性,这些应该可以正常工作。
修改 要添加更多细节,请参阅我的XAML:
<Grid d:DataContext="{d:DesignData /SampleData/MySampleData.xaml}">
<TextBox Text="{Binding Name}" />
<Grid DataContext="{Binding RelativeSource={RelativeSource AncestorType=Grid}, Path=DataContext.Address}">
<TextBox Text="{Binding City}" />
</Grid>
</Grid>
这里,Name TextBox工作正常,但City TextBox没有。
编辑2: 我的错。刚刚发现我使用了错误的属性名称。一切都按预期工作。下面提供的链接是显示设计时样本数据的绝佳资源,因此我也将其标记为答案。