0

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 アプリケーションでこの単純化された例を試しました。誰かがアイデアを持っていますか?

4

1 に答える 1

1

内部に CheckBox がある代わりに DataGridTemplateColumn を使用することをお勧めします。

<sdk:DataGridTemplateColumn Header="Bool">
    <sdk:DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <CheckBox IsChecked="{Binding Enable}"></CheckBox>
        </DataTemplate>
    </sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
于 2012-06-27T08:54:07.240 に答える