Я хотел бы иметь TabControl
с двумя TabItems
и одним Listbox
на каждый предмет. Я хочу, чтобы оба ListBoxes
показывали один и тот же контент, поэтому я привязал оба к одному и тому же ObservableCollection<T>
. Сначала элементы отображаются правильно в Listbox1
. Также, если я переключусь на ListBox2
, здесь также появятся элементы. Если я вернусь к Listbox1
, то все предметы исчезнут и останутся в ListBox2
. Я хочу, чтобы оба ListBoxes
держали и постоянно показывали один и тот же ListBoxItems
. Действительно был бы признателен за некоторую помощь!
Мой код XAML:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="350*"/>
<RowDefinition Height="100*"/>
</Grid.RowDefinitions>
<Button Grid.Row="1" Margin="5,5,5,5" Content="Add" Click="Button_Click"/>
<TabControl Grid.Row="0">
<TabItem Header="Test1">
<ListBox ItemsSource="{Binding Components}"/>
</TabItem>
<TabItem Header="Test2">
<ListBox ItemsSource="{Binding Components}"/>
</TabItem>
</TabControl>
</Grid>
Код CS:
private ListBoxItem _oBoxItem;
private Int32 i = 0;
private ObservableCollection<ListBoxItem> components = new ObservableCollection<ListBoxItem>();
public ObservableCollection<ListBoxItem> Components
{
get
{
if (components == null)
components = new ObservableCollection<ListBoxItem>();
return components;
}
}
public MainWindow()
{
InitializeComponent();
this.DataContext = this;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
_oBoxItem = new ListBoxItem();
_oBoxItem.Content = "Part " + i.ToString();
Components.Add(_oBoxItem);
i += 1;
}