Silverlight数据绑定到父的父datacontext中的itemsource

时间:2010-11-02 20:47:10

标签: silverlight data-binding

我有一个数据网格,在列的标题之一中,我希望有一个下拉列表来过滤网格中的数据。问题是具有将在此下拉列表中的值的datacontext位于usercontrol的viewmodel而不是datagrids itemssource中,因此列表似乎不可用于下拉列表。

                <sdk:DataGridTemplateColumn.HeaderStyle>
                    <Style TargetType="sdk:DataGridColumnHeader">
                        <Setter Property="ContentTemplate">
                            <Setter.Value>
                                <DataTemplate>
                                    <StackPanel Orientation="Horizontal">
                                        <TextBlock Text="Assignee" />
                                        <ComboBox x:Name="cboAttorneyHdr" ItemsSource="{Binding Path=Attorneys}" 
                                                  Margin="3,0,0,0" SelectedItem="{Binding Path=SelectedAttorney, Mode=TwoWay}" />
                                    </StackPanel>
                                </DataTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </sdk:DataGridTemplateColumn.HeaderStyle>

我找到了一个使用WPF相对源代码的例子似乎问了同样的事情,但似乎这对Silverlight不起作用。我已经尝试在后面的代码中手动设置它,但组合框似乎在那里可用!

2 个答案:

答案 0 :(得分:0)

我发现围绕这个问题的一种方法是使用一些帮助程序作为详细的here - 它只是可能的实现之一,但它相当于使用AncestorLevel / AncestorType模拟WPF RelativeSourceBinding仍然不可用在SL4。或者你可以尝试谷歌'数据网格中的silverlight组合框'以获得更多解决方法,我相信你可以想象它是一个非常常见的问题:)

答案 1 :(得分:0)

我发现这个解决方案实际上最终工作得很好,虽然它会让我有点真正理解它到底在做什么。

http://weblogs.asp.net/dwahlin/archive/2009/08/20/creating-a-silverlight-datacontext-proxy-to-simplify-data-binding-in-nested-controls.aspx