2

ビューモデルからの監視可能なコレクションにバインドされたデータグリッドがあります。これはすべて正常に機能し、データがデータグリッドに表示されます。

私が今する必要があるのは、ユーザーがテキストを変更したときにいくつかの列を検証することです。これを行うために IDataErrorInfo を使用しています。

私が次のことをした場合: -

**<TextBox 
     Width="100" 
     Text="{Binding Path=CallCode,
     Mode=TwoWay,
     ValidatesOnDataErrors=True,
     UpdateSourceTrigger=PropertyChanged }"/>**

これは機能し、ビューモデルで検証コードをトリガーしますが、このコードを以下のようにデータグリッドに追加しても何もしません!:-

<Border x:Name="body"                    
        DockPanel.Dock="Top"   
        Grid.Row="2" 
        Grid.Column="0">

        <!-- Results -->
        <DataGrid x:Name="Results"                            
            ItemsSource="{Binding CallCodesList}"
            AutoGenerateColumns="False"
            ScrollViewer.CanContentScroll="True"
            ScrollViewer.VerticalScrollBarVisibility="Auto"
            CanUserAddRows="False">

            <DataGrid.Columns >

            **<DataGridTextColumn                                                     
                     Header="Call Code" 
                     CanUserSort="True" 
                     Width="100" 
                     Binding="{Binding CallCode, 
                     ValidatesOnDataErrors=True,  
                     UpdateSourceTrigger=PropertyChanged />**

                 <DataGridCheckBoxColumn Width="70"
                        Binding="{Binding Path=HasSpeech}"
                        Header="Speech"
                        IsThreeState="True">
                    <DataGridCheckBoxColumn.ElementStyle>
                        <Style TargetType="CheckBox">
                            <Setter Property="IsChecked" Value="{Binding HasSpeech}" />
                        </Style>
                    </DataGridCheckBoxColumn.ElementStyle>
                </DataGridCheckBoxColumn>          
        </DataGrid>
    </Border>

私が欠けているものがありますか、それともデータグリッドにあるために何かを見ることができませんか?これはすべて新しいので、現在立ち往生しています:(

これに関するどんな助けも素晴らしいでしょう。

4

1 に答える 1

0

コードが正常であることがわかります。wpftoolkitのデータグリッドでIDataErrorInfo検証が許可されているかどうかはわかりませんが、この記事(WPF ToolkitのDataGridでの検証)では、wpftoolkitのデータグリッドで検証を使用する良い例を見ることができますが、 IDataErrorインターフェイスの方法。これがあなたのお役に立てば幸いです...

于 2012-11-07T20:27:26.513 に答える