2010-03-29 3 views
7

Я использую WPF Toolkit Datagrid и имеет один столбец, который является DataGridCheckBoxColumn, привязанным к свойству bool на моем ViewModel.DataGridCheckBoxColumn немедленное связывание

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

Теперь вам нужно перейти от камеры, чтобы обновить ее. Это флажок. Он не может быть посередине редактирования, как текстовое поле ...

Любая помощь будет оценена.

/J

ответ

21

Вы должны установить свойство UpdateSourceTrigger из связывания с PropertyChanged. По умолчанию используется функция LostFocus.

+0

Это работает для меня. Благодарю. – alimbada

+0

Это тоже работало для меня (WPF4) - возможно, это было что-то, что изменилось для .NET4. –

+0

Определенно работает в шаблоном столбце –

9

Решение для этого не должно использовать DataGridCheckBoxColumn. Вместо того, чтобы использовать

<dg:DataGridTemplateColumn Width="20" Header="" SortMemberPath="IsSelected"> 
    <dg:DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
     <CheckBox IsChecked="{Binding Path=IsSelected}" /> 
     </DataTemplate> 
    </dg:DataGridTemplateColumn.CellTemplate> 
</dg:DataGridTemplateColumn> 

, который по умолчанию имеет свою UpdateSourcerigger к PropertyChanged ...

DataGridCheckBoxColumn имеет это UpdateSourceTrigger установлен Явные и он не может быть изменен. Подробнее здесь: http://blogs.msdn.com/vinsibal/archive/2009/04/07/5-random-gotchas-with-the-wpf-datagrid.aspx

+4

Нет, это не по умолчанию. Вы должны установить его вручную, то есть «UpdateSourceTrigger = PropertyChanged». В противном случае вы будете вносить изменения только визуально (VS2010). Во всяком случае, БОЛЬШОЕ СПАСИБО за помощь. – greenoldman

+0

Примечание: вам нужно сделать UpdateSourceTrigger даже для текстового поля внутри DataGrid. Вероятно, в этом случае требуется PropertyChanged = LostFocus (хотя это значение по умолчанию) –

+1

Мне пришлось делать это при использовании Silverlight 5 – Aducci

Смежные вопросы