TwoWay MultiBinding со свойствами только для чтения

Я согласился бы, что "для" цикла является более ясным и более соответствующим при итерации.

, "в то время как" цикл подходит для опроса, или где количество циклов для удовлетворения условию выхода изменится на основе действия в цикле.

6
задан Adam Badura 20 November 2009 в 08:21
поделиться

2 ответа

Finally I found the solution myself. Actually it is in the documentation - I don't know how I missed that but I paid dearly (in wasted time) for it.

According to the documentation ConvertBack ought to return Binding.DoNothing on positions on which no value is to be set (in particular there were OneWay binding is desired). Another special value is DependencyProperty.UnsetValue.

This is not a complete solution as now IMultiValueConverter implementation must know where to return a special value. However I think most reasonable cases are covered by this solution.

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

Похоже, MultiBinding не работает должным образом. Я видел некоторое неожиданное поведение (что-то вроде вашего) раньше в моем Также вы можете вставить точки останова или трассировку в конвертер, и вы можете найти несколько забавных вещей о том, какие конвертеры и когда вызываются. Поэтому, если это возможно, вам следует избегать использования MultiBinding. Например, вы можете добавить специальное свойство в свою модель представления, которое будет устанавливать значение вашего изменяемого свойства в его сеттере и возвращать необходимое значение, используя все три ваших свойства в своем получателе. Это что-то вроде MultiValueConverter внутри свойства =).

Надеюсь, это поможет.

4
ответ дан 8 December 2019 в 16:04
поделиться
Другие вопросы по тегам:

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