1
내 DataGrid xaml 마크 업이 현재와 같이 보이며 유효성 검사 오류가 발생해도 이미지가 전혀 표시되지 않습니다. 내가 가지고있는 유일한 유효성 검사 오류는 필드에 입력 된 데이터가있는 경우입니다 (필드가 필요합니다).유효성 검사 오류가 발생하면 DataGridCell에 이미지를 배치하려면 어떻게합니까?
<DataGrid RowValidationErrorTemplate="{x:Null}" Name="dataGridInstitution" ItemsSource="{Binding Path=OrgIDs, Mode=TwoWay}" CanUserDeleteRows="True" CanUserAddRows="True" AddingNewItem="DataGrid_AddingNewInstitution" AutoGenerateColumns="False" Height="300" Width="1170" CanUserResizeColumns="False" >
<DataGrid.Resources>
<Style x:Key="CellErrorStyle" TargetType="{x:Type DataGridCell}">
<Setter Property="Validation.ErrorTemplate" >
<Setter.Value>
<ControlTemplate>
<DataGridCell>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=(Validation.Errors)[0].ErrorContent}" />
<Image Source="icons/status_error.png" Height="16" HorizontalAlignment="Right" />
</StackPanel>
</DataGridCell>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTextColumn Header="Institution ID" Binding="{Binding Institution, Mode=TwoWay, ValidatesOnDataErrors=True }" Width="80" CellStyle="{StaticResource CellErrorStyle}" />
<DataGridTextColumn Header="Org ID" Binding="{Binding value, Mode=TwoWay, ValidatesOnDataErrors=True }" Width="50" CellStyle="{StaticResource CellErrorStyle}" />
<DataGridTextColumn Header="Data Source" Binding="{Binding Datasource, Mode=TwoWay }" Width="150" />
<DataGridTextColumn Header="User Code" Binding="{Binding Security.UserCode, Mode=TwoWay, ValidatesOnDataErrors=True }" Width="70" CellStyle="{StaticResource CellErrorStyle}" />
<DataGridTextColumn Header="Password" Binding="{Binding Security.Password, Mode=TwoWay, ValidatesOnDataErrors=True }" Width="75" CellStyle="{StaticResource CellErrorStyle}" />
<DataGridComboBoxColumn Header="Image Web Service Location" ItemsSource="{Binding Source={StaticResource Specifications}, Path=ImageWebServices, Mode=TwoWay}" SelectedItemBinding="{Binding ServerLocation, ValidatesOnDataErrors=True}" Width="325" CellStyle="{StaticResource CellErrorStyle}" />
<DataGridComboBoxColumn Header="Image Streaming Web Service Location" ItemsSource="{Binding Source={StaticResource Specifications}, Path=ImageStreamingWebServices, Mode=TwoWay }" SelectedItemBinding="{Binding StreamingServerLocation}" Width="325" />
<DataGridComboBoxColumn Header="Trace Level" ItemsSource="{Binding Source={StaticResource tracingEnum}}" SelectedItemBinding="{Binding Tracing.Level, Mode=TwoWay}" Width="*" />
</DataGrid.Columns>
</DataGrid>
있다 : 당신이 세포에 의해 검증 셀을 원한다면, 당신은 다음과 같은 스타일을 사용할 필요가 우려. 1. 오류가 발생한 DataGridCell에 아이콘이 나타나기를 원합니다. (현재 셀에 빨간색 테두리 만 표시 중입니다.) 2. 행의 오류를 수정하면 행 시작 부분의 오류 아이콘이 지워지지 않습니다. –
정말 그렇지 않으면 그 길을 지키지 않는 것이 좋습니다. 하지만 어쨌든 대답을 편집하여 도움이되기를 바랍니다. – Emad
오류가 해결 된 후 아이콘을 지울 수있는 방법을 찾지 못했지만 아이콘이 셀이 아니라 행에 있어야합니다. –