Связывание одной ObservableCollection с двумя свойствами ItemsSource ItemsControl, только последнее обновление ItemsControl - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь привязать 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" });
    }
}

Когда я запускаю свое приложение, я получаю следующий результат:

unexpected result

Элемент управления справа (второй столбец) - это тот, который обновляется, а первый нет.

1 Ответ

0 голосов
/ 26 июня 2018

Вы пытаетесь добавить один и тот же UIElement к двум различным логическим родителям. Что не возможно.

...