【问题标题】:Silverlight databinding to itemsource in parent's parent datacontextSilverlight 数据绑定到父项的父数据上下文中的 itemssource
【发布时间】:2010-11-02 20:47:10
【问题描述】:

我有一个数据网格,在其中一个列的标题中,我希望有一个下拉列表来过滤网格中的数据。问题是具有该下拉列表中的值的数据上下文位于用户控件的视图模型中,而不是数据网格项目源中,因此该列表似乎不适用于下拉列表。

                <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。我已经尝试在后面的代码中手动设置它,但组合框似乎也在那里可用!

【问题讨论】:

    标签: silverlight data-binding


    【解决方案1】:

    我发现解决此问题的一种方法是使用详细的帮助程序here - 这只是可能的实现之一,但它相当于使用 AncestorLevel/AncestorType 模拟 WPF RelativeSourceBinding,这在 SL4 中仍然不可用.或者您可以尝试在 google 'silverlight combobox in datagrid' 寻找更多解决方法,我相信您可以想象这是一个很常见的问题 :)

    【讨论】:

      【解决方案2】:

      我发现这个解决方案实际上效果很好,尽管我需要花一点时间才能真正理解它到底在做什么。

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

      【讨论】:

        猜你喜欢
        • 2014-06-07
        • 1970-01-01
        • 2015-07-21
        • 2013-01-20
        • 1970-01-01
        • 2010-11-10
        • 2015-06-27
        • 2015-06-11
        • 1970-01-01
        相关资源
        最近更新 更多