在我的Silverlight应用程序中的一个控件上,我嵌入了一个自定义用户控件。在此嵌入式控件中是另一个包含数据网格的自定义用户控件。我想使用绑定来填充数据网格。很简单,我只是简化了父控件的DataContext中的集合。
父母表格:
<UserControl x:Class="ParentControl"
...>
<Grid x:Name="LayoutRoot" >
<ReusableControl />
</Grid>
</UserControl>
父代码隐藏:
public partial class ParentControl: UserControl
{
public ParentControl()
{
InitializeComponent();
this.DataContext = ObjectCollection;
}
public ObservableCollection<object> ObjectCollection
{
get ;
set ;
}
}
中级表格
<UserControl x:Class="ReusableControl"
...>
<Grid x:Name="LayoutRoot" Background="Gold">
<CustomDataGrid />
</Grid>
</UserControl>
儿童控制:
<UserControl x:Class="CustomDataGrid"
...>
<Grid x:Name="LayoutRoot">
<data:DataGrid x:Name="dgItems"
AutoGenerateColumns="True"
ItemsSource="{Binding ObjectCollection}"
>
</data:DataGrid>
</Grid>
</UserControl>
我想基于父控件DataContext中的另一个集合动态地详细说明datagrid的列。我怎样才能做到这一点?是不是有一种方法可以给这只猫上皮?*
谢谢, 标记
*在提出这个问题时没有猫受到伤害。
答案 0 :(得分:0)
经过几个小时后,我找到了一个我已发布的解决方法here。这不会让我成为世界上最好的解决方案,但它可以工作,并且不需要在整个应用程序中注册事件处理程序。它也是自上而下的,这就是我想要的。
我怀疑我可以更好地使用依赖属性,以防止在同一类中需要DP和NP,但我没时间了: - (
希望这有助于其他人。