Silverlight DataGrid验证显示所有对象属性的验证错误

时间:2011-02-09 16:16:04

标签: c# silverlight validation data-binding

我有一个ObservableCollection <T>,其中T:INotifyDataErrorInfo。

此集合中的对象有验证错误,然后我将此集合绑定到Silverlight 4 DataGrid,有没有办法在DataGrid中显示此验证错误? (显示每个对象的无效属性的红色单元格)。默认情况下,DataGrid仅在我开始编辑行时显示验证错误,并且仅针对活动行。

1 个答案:

答案 0 :(得分: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>