Silverlight:嵌套容器和绑定

时间:2009-07-16 12:12:26

标签: silverlight binding nested

情景位:

在我的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的列。我怎样才能做到这一点?是不是有一种方法可以给这只猫上皮?*

谢谢, 标记

*在提出这个问题时没有猫受到伤害。

1 个答案:

答案 0 :(得分:0)

经过几个小时后,我找到了一个我已发布的解决方法here。这不会让我成为世界上最好的解决方案,但它可以工作,并且不需要在整个应用程序中注册事件处理程序。它也是自上而下的,这就是我想要的。

我怀疑我可以更好地使用依赖属性,以防止在同一类中需要DP和NP,但我没时间了: - (

希望这有助于其他人。