Привязка данных Silverlight к источнику данных в родительском текстовом канале родителя - PullRequest
0 голосов
/ 02 ноября 2010

У меня есть сетка данных, где в одном из заголовков столбца я хотел бы иметь выпадающий список, который фильтрует данные в сетке.Проблема заключается в том, что текст данных, имеющий значения, которые должны быть в этом раскрывающемся списке, находится в модели представления пользовательского элемента управления, а не в источнике элементов данных, поэтому список не доступен для раскрывающегося списка.

                <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 голосов
/ 03 ноября 2010

Я нашел это решение, которое на самом деле работало замечательно, хотя мне понадобится немного времени, чтобы понять, что на самом деле он делает.

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

0 голосов
/ 03 ноября 2010

Один из способов решения этой проблемы, который я нашел, - это использовать некоторые подробности здесь - это всего лишь одна из возможных реализаций, но она сводится к эмуляции привязки WPF RelativeSourceBinding с AncestorLevel / AncestorType, который по-прежнему не доступно в SL4. Или вы можете попробовать Google 'Silverlight Combobox в DataGrid', чтобы найти больше способов ее решить, я уверен, вы можете себе представить, что это довольно распространенная проблема:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...