У меня есть TabControl, генерирующий некоторые элементы вкладки по шаблону MVVM с использованием WPF.
TabControl ItemTemplate, т. Е. Для каждого сгенерированного элемента вкладки, у меня есть комбинированный список, который должен показывать некоторые данные из другого списка. Этот список не совпадает с привязанным объектом самого элемента вкладки.
Например: если табуляция привязана к объекту адреса, в комбинированном окне должны быть показаны данные из списка состояний и состояние, присутствующее в объекте адреса в качестве выбранного элемента.
В поле со списком имеется только один элемент в виде таблицы данных, которая привязана к списку состояний
Проблема в том, что все данные отображаются во всех разделах, но поле со списком просто не отображает данные. Удивительно, но Combobox при извлечении из TabControl DataTemplate работает отлично ...
Ниже приведен код как снаружи, так и внутри tabcontrol. Некоторые предложения, пожалуйста !!!
------ Это вне Tabcontrol и отлично работает --------------
<ComboBox SelectedValue="{Binding SelectedState}" HorizontalAlignment="Left" VerticalAlignment="Center" IsEditable="True" Margin="50,55,0,61" Height="27" Width="193">
<ComboBoxItem TextSearch.Text="{Binding SelectedState}">
<ContentControl>
<DataGrid SelectedIndex="{Binding StateSelectedIndex}" ItemsSource="{Binding StateData}" AutoGenerateColumns="False" Height="200" HorizontalAlignment="Left" VerticalAlignment="Top" Width="200" cal:Message.Attach="[Event SelectionChanged] = [Action SelectionChanged]">
<DataGrid.Columns>
<DataGridTextColumn Header="StateName" Binding="{Binding StateName}" />
</DataGrid.Columns>
</DataGrid>
</ContentControl>
</ComboBoxItem>
</ComboBox>
---- Это внутри TabControl ---------
<TabControl Margin="3,3,0,0" HorizontalAlignment="Left" Width="752" Height="255" VerticalAlignment="Top" Grid.ColumnSpan="2" Grid.Row="1" ItemsSource="{Binding Addresses}" SelectedIndex="{Binding WhichAddressTab}" >
<TabControl.ItemContainerStyle>
...................................
</TabControl.ItemContainerStyle>
<TabControl.ContentTemplate>
<DataTemplate>
<ContentControl>
..........................
<ComboBox SelectedValue="{Binding SelectedState}" HorizontalAlignment="Left" VerticalAlignment="Center" IsEditable="True" Margin="108,3,0,1" Grid.ColumnSpan="3" Grid.Row="1" Width="147">
<ComboBoxItem TextSearch.Text="{Binding SelectedState}" >
<ContentControl>
<DataGrid SelectedIndex="{Binding StateSelectedIndex}" ItemsSource="{DynamicResource StateData}" AutoGenerateColumns="False" Height="200" HorizontalAlignment="Left" VerticalAlignment="Top" Width="200" cal:Message.Attach="[Event SelectionChanged] = [Action SelectionChanged]">
<DataGrid.Columns>
<DataGridTextColumn Header="StateName" Binding="{Binding StateName}" />
</DataGrid.Columns>
</DataGrid>
</ContentControl>
</ComboBoxItem>
</ComboBox>
...........................
</Grid>
</ContentControl>
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
Я попытался выполнить поиск и понял, что проблема связана с привязкой данных в табличке данных, но не смог достичь желаемого результата.