UpdateSourceTrigger被忽略

时间:2012-06-27 08:49:41

标签: wpf silverlight xaml .net-3.5

我在DataGrid中使用CheckBoxColumn。通常,绑定工作正常,但UpdateSourceTrigger(设置为PropertyChanged)将被忽略,并且属性会在LostFocus上更新。我的错误是什么或如何更改此行为以立即更新属性?据我所知,设置UpdateSourceTrigger应该可以工作。

<sdk:DataGrid Grid.Column="1" Grid.Row="1" Grid.ColumnSpan="2"
              ItemsSource="{Binding List}"
              AutoGenerateColumns="False">
    <sdk:DataGrid.Columns>
        <sdk:DataGridCheckBoxColumn Header="Enable"
                                    Binding="{Binding Enable, UpdateSourceTrigger=PropertyChanged}" />
        <sdk:DataGridTextColumn Header="Message"
                                Binding="{Binding Text}"
                                IsReadOnly="True" />
        <!-- [...] -->
    </sdk:DataGrid.Columns>
</sdk:DataGrid>

我在使用Silverlight Toolkit的Silverlight页面中遇到此问题。我在具有相同行为的WPF应用程序中尝试了这个简化示例。有人有想法吗?

1 个答案:

答案 0 :(得分:1)

我建议使用DataGridTemplateColumn而不是内部的CheckBox。

<sdk:DataGridTemplateColumn Header="Bool">
    <sdk:DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <CheckBox IsChecked="{Binding Enable}"></CheckBox>
        </DataTemplate>
    </sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>