Как получить родительский элемент управления DataContext для привязки данных к элементу? - PullRequest
1 голос
/ 09 ноября 2010

Предположим, у меня есть пользовательский элемент управления, текст которого связан с виртуальной машиной.Эта виртуальная машина имеет свойство для списка MyList.

Внутри этого пользовательского элемента управления у меня есть ComboBox, я хочу установить следующий вид xaml

   <Grid x:Name="LayoutRoot" Background="White">
            <StackPanel HorizontalAlignment="Stretch">
                <sdk:DataGrid ItemsSource="{Binding YourList}"  IsReadOnly="True" AutoGenerateColumns="False" >
                    <sdk:DataGrid.Columns>                      
                        <sdk:DataGridTextColumn  Header="Name"   Binding="{Binding Name}" />
                        <!-- ...... -->
                        <sdk:DataGridTemplateColumn  Header="User" >
                            <sdk:DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <ComboBox ItemsSource="{Binding ElementName=LayoutRoot, Path=DataContext.MyList}" DisplayMemberPath="Value" SelectedValuePath="Key" SelectedValue="{Binding UserID}" ></ComboBox>
                                </DataTemplate>
                            </sdk:DataGridTemplateColumn.CellTemplate>
                        </sdk:DataGridTemplateColumn>

                    </sdk:DataGrid.Columns>
                </sdk:DataGrid>
            </StackPanel>
    </Grid>

, но он не работает.

Как решить эту проблему?

Ответы [ 2 ]

1 голос
/ 22 сентября 2013

Это сработало от меня. Это был ItemSource для ComboBox, который был внутри DataGrid:

      ItemsSource="{Binding RelativeSource={RelativeSource AncestorType=sdk:DataGrid}, 
Path=DataContext.Teams}"> 
0 голосов
/ 09 ноября 2010

Вы пытаетесь получить доступ к основной виртуальной машине из UserControl? взгляните на это решение. http://weblogs.asp.net/dwahlin/archive/2009/08/20/creating-a-silverlight-datacontext-proxy-to-simplify-data-binding-in-nested-controls.aspx

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