WPF. Converter и изменение источника + еще один вопросик.
От: MAMOHT  
Дата: 08.02.13 10:40
Оценка:
Добрый день.

Есть такой-вот незатейливый стиль:

<Style TargetType="{x:Type DataGridRow}" x:Key="ForDocs">
    <Setter Property="Background" Value="{Binding Converter={StaticResource Document2Color}}" />
</Style>


Document2Color определяет, в каком состоянии находятся документы по проекту (просрочены, сданы, не просрочены) и окрашивает строку в соответствующий цвет.
В деталях таблицы, собственно список самих документов.
Вопрос номер один: когда я изменяю даты документов и по логике строка должна сменить цвет на зеленый (все сдано), то конвертер не хочет пересчитывать цвет строки. Как его "пнуть", чтобы он понял, что данные поменялись и надо бы снова отработать. (OnPropertyChanged отсылал уже по всякому, не помогает)

Вопрос номер два: если я покрашу строку в какой-то цвет, то этот же цвет распространяется на всю область RowDetailed. Это как-то лечится?

Спасибо.
Re: WPF. Converter и изменение источника + еще один вопросик.
От: TK Лес кывт.рф
Дата: 10.02.13 19:09
Оценка:
Здравствуйте, MAMOHT, Вы писали:

MAM>
MAM><Style TargetType="{x:Type DataGridRow}" x:Key="ForDocs">
MAM>    <Setter Property="Background" Value="{Binding Converter={StaticResource Document2Color}}" />
MAM></Style>
MAM>


MAM>Document2Color определяет, в каком состоянии находятся документы по проекту (просрочены, сданы, не просрочены) и окрашивает строку в соответствующий цвет.

MAM>В деталях таблицы, собственно список самих документов.
MAM>Вопрос номер один: когда я изменяю даты документов и по логике строка должна сменить цвет на зеленый (все сдано), то конвертер не хочет пересчитывать цвет строки. Как его "пнуть", чтобы он понял, что данные поменялись и надо бы снова отработать. (OnPropertyChanged отсылал уже по всякому, не помогает)

WPF должен как-то узнать что изменились свойства используемые конвертером. Более правильно иметь свойство которое описывает состояние. тогда, binding будет выглядеть так:

<Setter Property="Background" Value="{Binding Path=DocumentState,Converter={StaticResource DocumentState2Color}}" />
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[2]: WPF. Converter и изменение источника + еще один вопросик.
От: MAMOHT  
Дата: 11.02.13 05:28
Оценка:
Здравствуйте, TK, Вы писали:

TK>Здравствуйте, MAMOHT, Вы писали:


MAM>>
MAM>><Style TargetType="{x:Type DataGridRow}" x:Key="ForDocs">
MAM>>    <Setter Property="Background" Value="{Binding Converter={StaticResource Document2Color}}" />
MAM>></Style>
MAM>>


TK>WPF должен как-то узнать что изменились свойства используемые конвертером. Более правильно иметь свойство которое описывает состояние. тогда, binding будет выглядеть так:


TK><Setter Property="Background" Value="{Binding Path=DocumentState,Converter={StaticResource DocumentState2Color}}" />


Проблема была в том, что хотел обрабатывать ВЕСЬ объект, анализируя в конвертере несколько его свойств.
Объединение этих свойств в одно поле-enum-статус решило проблему.
Спасибо за подсказку.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.