Вопрос

У меня есть работник в качестве наблюдателя объекта сотрудника.

Объект сотрудника имеет зарплату.

Я хочу отобразить несколько ценностей, таких как средняя зарплата сотрудников в XAML, и поле UI должно быть автоматически обновлено, когда элемент добавляется в список или когда поле заработной платы изменяется в любом из обновленных элементов.

Это может быть достигнуто путем создания свойства для среднего и прослушивания коллекции измененных и пропирен обработчиков в списке.

Но я уверен, что должен быть какой-то другой лучший способ сделать это. (Как использовать прилагаемыеProPerties или ivalueconverter / Imultivalueconverter)

Что касается этого, у меня есть следующие вопросы.

  1. Можно ли использовать Imultivalueconverter для списка / наблюдательного элемента предметов? Преобразователь должен быть вызван при добавлении элемента в список, а также, когда определенное свойство изменилось?
Это было полезно?

Решение

Использование свойства, безусловно, является способом идти, особенно с точки зрения MVVM. Думать Бритва Оккама: В основном самое простое решение, как правило, лучшее.

Это, безусловно, самое чистое решение, и, следовательно, наиболее удобно. Кроме того, это самый расширяемый (вы можете легко добавить новые свойства для разных расчетов, если вы хотите).

Все, что вам нужно сделать, - это создавать свойства только для чтения, и вызовите POWERCECHANDECEND с именем этого свойства при изменении сбора (которые звучат так, как вы делаете).

Например, вот «среднее» имущество:

public Double Average   
{
    get { return mMyCollection.Average(); }
}

void mMyCollection_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
    PropertyChanged(this, new PropertyChangedEventArgs("Average"));
}

Прилагаемые свойства не будут работать - они предназначены для указания имущества родителей в дочернем элементе.

ValueConververs будут работать, по теории (хотя, вероятно, должны быть на каждом пункте в списке, а также на всю коллекцию), но вы на самом деле не преобразуете что-либо, вы предоставляете дополнительные данные на основе существующих данных. Чтобы это сделать, вам нужно было помнить со всеми видами шаблонов, и в любое время вам нужно что-то изменить, вам нужно снова смирять с ними. Это будет сложно спешить и без пособия.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top