2011-02-09 10 views
2

私はObservableCollectionを持っています<T> T:INotifyDataErrorInfo。Silverlight DataGrid検証は、すべてのオブジェクト|プロパティの検証エラーを示します。

このコレクションのオブジェクトには検証エラーがあり、このコレクションをSilverlight 4 DataGridにバインドします。この検証エラーをDataGridに表示する方法はありますか? (各オブジェクトの無効なプロパティの赤いセルを表示)。デフォルトでは、DataGridは行の編集を開始してアクティブな行のみを表示する場合にのみ、検証エラーを表示します。

+0

私は検証してデータグリッドを使用すると、細胞とすべてがうまく働いていたとして、私は、テキストボックスを持っていました。私はあなたの前提条件でそれを実装しようとします。 – vorrtex

答えて

2

私はTextBlockコントロールで成功していないので、私はあなたが私は境界線を削除するには、その背景には、本当に透明に設定することを意味し、TextBoxのテンプレートを変更することができます無効TextBox を使用しました。

multi row validatione

<sdk:DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Items}" IsReadOnly="False" SelectionMode="Single"> 
    <sdk:DataGrid.Columns> 
     <sdk:DataGridTextColumn Header="Title" Binding="{Binding Title}"/> 
     <sdk:DataGridTemplateColumn Header="Link" Width="100"> 
      <sdk:DataGridTemplateColumn.CellTemplate> 
       <DataTemplate> 
        <TextBox Text="{Binding Link, Mode=TwoWay}" Margin="2" 
          IsEnabled="False" BorderThickness="0" Background="Transparent"/> 
       </DataTemplate> 
      </sdk:DataGridTemplateColumn.CellTemplate> 
      <sdk:DataGridTemplateColumn.CellEditingTemplate> 
       <DataTemplate> 
        <TextBox Text="{Binding Link, Mode=TwoWay}" Margin="2"/> 
       </DataTemplate> 
      </sdk:DataGridTemplateColumn.CellEditingTemplate> 
     </sdk:DataGridTemplateColumn> 
    </sdk:DataGrid.Columns> 
</sdk:DataGrid> 
+0

Thanx明日これを試してみます。 –

+0

それは動作します、ありがとう。興味深い理由は、DataGridTemplateColumnの代わりにDataGridTextColumnが使用されているときに動作しません。 TextColumnはTextBlockを使用してセルをレンダリングしますか? –

+0

@Broken Pipeそ​​うですが、TextColumnはTextBlockを使用してセルを読み取り専用モードで、TextBoxを編集モードで表示します。 TemplateColumnには多すぎるコードが含まれているため、これは単純化のために使用されています。 – vorrtex

関連する問題