WPF - Пользовательский интерфейс не обновляется при добавлении элемента в связанную коллекцию - PullRequest
0 голосов
/ 15 декабря 2010

У меня есть общий список объектов, которые я привязал к пользовательскому элементу управления. Кажется, что в коде позади все работает нормально, но любые изменения, которые я делаю в коллекции, не отражаются в пользовательском интерфейсе (даже если они работают, находят во всем коде).

Вот XAML для моего интерфейса:

<controls:ControllableListView x:Name="lvSummaryCaseEvents" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="3" Label="Case Events:" ItemsSource="{Binding CaseEvents}" AddButtonClicked="ControllableListView_AddButtonClicked">

И код, где я добавляю предмет в коллекцию:

_caseScreen.CaseEvents.Add(caseEvent);
//after the line above executes, lvSummaryCaseEvents (in the debugger) shows the correct number of items and the items' values are all correct.  No change to the UI whatsoever

Свойство ItemSource в моем пользовательском элементе управления:

public static readonly DependencyProperty ItemsSourceProperty = DependencyProperty.Register("ItemsSource", typeof(System.Collections.IList), typeof(ControllableListView));

public System.Collections.IList ItemsSource
{
    get
    {
        return this.GetValue(ItemsSourceProperty) as System.Collections.IList;
    }
    set
    {
        this.SetValue(ItemsSourceProperty, value);
    }
}

И, наконец, XAML для стандартного ListView, который живет в моем пользовательском элементе управления, который связан со свойством ItemsSource, перечисленным выше:

<ListView Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="4" Name="lvListView" ItemsSource="{Binding ItemsSource}" View="{Binding View}" SelectionChanged="lvListView_SelectionChanged" />

Просто повторюсь, все работает нормально, когда я отображаю коллекцию в первый раз, но когда я добавляю элемент в коллекцию, пользовательский интерфейс не отражает сделанные изменения.

Заранее спасибо,
Sonny

1 Ответ

2 голосов
/ 15 декабря 2010

Измените свою коллекцию на ObservableCollection<T>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...