Это немного сложно объяснить ...
У меня есть главное окно, которое содержит TabControl с 7 вкладками: Вкладка Прайс-лист содержит Listview и TextBoxes. В списке отображаются прайс-листы из базы данных. Когда я выбираю (щелкаю) любой прайс-лист, выделенный элемент выделяется, а текстовые поля заполняются выбранными данными.
Проблема: Это работает, только если ListView находится в основной Windows. Если я помещу все внутри вкладки и запусту его, код работает, но ListView не выделяет выбранный элемент списка или не заполняет текстовые поля. В основном связывание не показывает изменений.
<UserControl ....>
<ListView x:Name="ListViewPriceLists" ItemsSource="{Binding ListOfPriceLists}" SelectedItem="{Binding SelectedPriceList, Mode=TwoWay}" >
<ListView.View>
<GridView>
<GridViewColumn Width="300" DisplayMemberBinding="{Binding Reference}" >
<GridViewColumn.Header>
<GridViewColumnHeader Tag="Description" Click="GridViewColumnHeader_Click">Description</GridViewColumnHeader>
</GridViewColumn.Header>
</GridViewColumn>
<GridViewColumn Width="300" DisplayMemberBinding="{Binding Description}" >
<GridViewColumn.Header>
<GridViewColumnHeader Tag="Description" Click="GridViewColumnHeader_Click">Description</GridViewColumnHeader>
</GridViewColumn.Header>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
MainWindow.xaml
<!-- PRICE LIST -->
<TabItem x:Name="TabItemPriceList" Header="PRICE LIST" GotFocus="TabItemPriceList_GotFocus" IsSelected="True" >
<DockPanel LastChildFill="True">
<Grid x:Name="GcPriceList" >
</Grid>
</DockPanel>
</TabItem>
MainWindow.xaml.cs
private void TabItemPriceList_GotFocus(object sender, RoutedEventArgs e)
{
GcPriceList.Children.Clear();
PiceListUC piceListUC = new PiceListUC();
GcPriceList.Children.Add(piceListUC);
}