Привязка элементов внутри элемента с другой привязкой

Рейтинг: 0Ответов: 0Опубликовано: 17.06.2023

Возникла следующая проблема.

Есть 2 ObservableCollection: это EmpList и AbsCatList. DataGrid привязывается к EmpList и показывает оттуда данные. Внутри грида есть ComboBox, который хранит данные из AbsCatList. Но его тег необходимо указать из EmpList. И вопрос заключается в следующем, как в ComboBox показывать данные из AbsCatList, а указать его тег - из EmpList?

    <Page.Resources>
        <viewmodel:EmployerList x:Key="emp"/>
        <viewmodel:AbsenceCategoryList x:Key="absCat"/>
    </Page.Resources>

    <Grid Background="White">
        <DataGrid Name="TimeSheetGrid" IsReadOnly="True" AutoGenerateColumns="False"
                  DataContext="{Binding Source={StaticResource emp}}" 
                  ItemsSource="{Binding Path=EmpList}"
                  SelectedValuePath="EmpID">
            <DataGrid.Columns>
                <DataGridTextColumn Binding="{Binding EmpName}" Width="Auto">
                    <DataGridTextColumn.Header>Тип</DataGridTextColumn.Header>
                </DataGridTextColumn>
                <DataGridTemplateColumn>
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <ComboBox Width="230" IsReadOnly="True" 
                                      DataContext="{Binding Source={StaticResource absCat}}" 
                                      ItemsSource="{Binding Path=AbsCatList}" 
                                      DisplayMemberPath="Name" SelectedValuePath="Id" 
                                      Tag="{Binding Path=EmpList, ElementName=EmpID}" 
                                      SelectionChanged="ComboBox_SelectionChanged"/>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
            </DataGrid.Columns>
        </DataGrid>
    </Grid>

Ответы

Ответов пока нет.