ListBox не обновляется после измененного свойства

Нет, Вам все еще нужно к scp [from] [to], какой бы ни способ, которым Вы копируете

различие, Вам нужно к scp -p server:serverpath localpath

6
задан BartoszKP 11 July 2015 в 12:15
поделиться

2 ответа

Давайте просто посмотрим на один из ListBoxes, поскольку они оба, по сути, одинаковы.

Нас беспокоит следующий код:

<ListBox ItemsSource="{Binding Path=Applications, 
                           UpdateSourceTrigger=PropertyChanged, Mode=OneWay}" />

Поскольку вы новичок в WPF, позвольте мне сказать, что вам, вероятно, не нужны UpdateSourceTrigger или Mode , что оставляет нам следующее:

<ListBox ItemsSource="{Binding Path=Applications}" />

Вы упомянули, что Applications является общедоступным свойством в вашем коде -за. Вам нужно, чтобы это было DependencyProperty , и оно должно запускать события при его изменении - большинство людей используют для этого ObservableCollection .

Так что ваш код программной части будет иметь что-то вроде это:

public ObservableCollection<string> Applications
{
    get { return (ObservableCollection<string>)GetValue(ApplicationsProperty); }
    set { SetValue(ApplicationsProperty, value); }
}

public static readonly DependencyProperty ApplicationsProperty =
    DependencyProperty.Register("Applications", 
    typeof(ObservableCollection<string>), typeof(Window1), 
    new UIPropertyMetadata(null));

Затем, если вы хотите добавить его, вы сделаете что-то вроде этого:

this.Applications = new ObservableCollection<string>();
Applications.Add("Whatever");

Наконец, чтобы «простой» синтаксис привязки работал в XAML,

11
ответ дан 8 December 2019 в 17:26
поделиться

Проблема в том, что значение вашего свойства не изменилось. Это все тот же список, та же ссылка.

Одним из решений может быть то, что ваши коллекции имеют тип ObservableCollection . Эти списки содержат события для WPF при добавлении или удалении элементов.

3
ответ дан 8 December 2019 в 17:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: