我正在尝试将ObservableCollection绑定到两个ItemsControl控件,但是实际上最后一个ItemsControl正在更新。
XAML:
<Border BorderThickness="2" BorderBrush="Red">
<StackPanel>
<Grid Margin="0 10 0 0">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<ItemsControl Grid.Column="0" Tag="LeftSideItemsControl" ItemsSource="{Binding Items, Mode=OneWay}"/>
<ItemsControl Grid.Column="1" Tag="RightSideItemsControl" ItemsSource="{Binding Items, Mode=OneWay}"/>
</Grid>
</StackPanel>
</Border>
将项目添加到ObservableCollection后面的代码:
public partial class DiagramContainer : UserControl
{
public ObservableCollection<UIElement> Items { get; set; }
public DiagramContainer()
{
InitializeComponent();
DataContext = this;
Items = new ObservableCollection<UIElement>();
Items.Add(new Button() { Content = "TEST" });
Items.Add(new TextBox() { Text = "TEST" });
}
}
运行应用程序时,我得到以下结果:
右边的ItemsControl(第二列)是要更新的,而第一个没有。
答案 0 :(得分:1)
您正在尝试将相同的UIElement
添加到两个不同的逻辑父级。这是不可能的。