English 中文(简体)
WPF Datagrid - How to validate multiple rows and mark all invalid ones?
原标题:

I have a datagrid with rows where the validation depends on his siblings. So far I m using BindingGroups and a custom ValidationRule to validate multiple rows a the same time. But I can t figure out how to change the appereance of the invalid row entries. I return a ValidationResult and my grid gets a red border but my style gets ignored.

My xaml style code so far:

    <Style TargetType="{x:Type dg:DataGridRow}">
            <Style.Triggers>
                <Trigger Property="Validation.HasError" Value="true">
                    <Setter Property="BorderThickness" Value="10"/>
                    <Setter Property="BorderBrush" Value="Green"/>
                    <Setter Property="Background" Value="#F6B39E"/>
                    <Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=(Validation.Errors)[0].ErrorContent}"/>
                </Trigger>
            </Style.Triggers>
        </Style>

edit: maybe I should post a little more of my code at the moment I have this validation declaration:

 <dg:DataGrid.RowValidationRules>
      <viewModel:StreamGridValidationRules />
 </dg:DataGrid.RowValidationRules>

With this code my style above gets set correctly, but only one row gets validated at a time. As I need to validate all siblings and his parent aswell, I changed my code to this:

<dg:DataGrid.BindingGroup>
     <BindingGroup Name="BindingGroup">
         <BindingGroup.ValidationRules>
              <viewModel:StreamGridValidationRules />
          </BindingGroup.ValidationRules>
     </BindingGroup>
</dg:DataGrid.BindingGroup>

With this I get multiple items in the BindingGroup but my style gets ignored completly and the grid just gets the standard 1px red border.

Thanks beforehand for any tips and hints!

tS!

问题回答

what happens if you remove the x:Key="RowStyle", does it work then?

forgive me if im being obvious, but not seeing the rest of your code, i cant tell. If you are naming a style it wont get used unless you are explicitly setting it to be used.





相关问题
WPF convert 2d mouse click into 3d space

I have several geometry meshes in my Viewport3D, these have bounds of (w:1800, h:500, d:25). When a user clicks in the middle of the mesh, I want the Point3D of (900, 500, 25)... How can I achieve ...

Editing a xaml icons or images

Is it possible to edit a xaml icons or images in the expression design or using other tools? Is it possible to import a xaml images (that e.g you have exported) in the expression designer for editing?...

WPF: writing smoke tests using ViewModels

I am considering to write smoke tests for our WPF application. The question that I am faced is: should we use UI automation( or some other technology that creates a UI script), or is it good enough to ...

WPF - MVVM - NHibernate Validation

Im facing a bit of an issue when trying to validate a decimal property on domain object which is bound to a textbox on the view through the viewmodel. I am using NHibernate to decorate my property on ...

How do WPF Markup Extensions raise compile errors?

Certain markup extensions raise compile errors. For example StaticExtension (x:Static) raises a compile error if the referenced class cannot be found. Anyone know the mechanism for this? Is it baked ...

WPF design-time context menu

I am trying to create a custom wpf control, I m wondering how I can add some design-time features. I ve googled and can t seem to get to my goal. So here s my simple question, how can I add an entry ...

How to combine DataTrigger and EventTrigger?

NOTE I have asked the related question (with an accepted answer): How to combine DataTrigger and Trigger? I think I need to combine an EventTrigger and a DataTrigger to achieve what I m after: when ...

热门标签