WPF Telerik RadGridView - сравните startDatePicker EndDatePicker и отобразите ошибку, если она есть

У меня есть текущий код, где 2 DatePicker находятся в ячейках с шаблонами RadGridView.

           <telerik:RadGridView AutoExpandGroups="True" AutoGenerateColumns="False" ColumnWidth="Auto" HorizontalAlignment="Left" 
                                         ItemsSource="{Binding entries, Mode=TwoWay}" Name="gridControl1" VerticalAlignment="Top" 
                                         RowIndicatorVisibility="Collapsed">

            <telerik:RadGridView.Columns>                   
            <telerik:GridViewDataColumn Width="0.2*" DataFormatString="{}{0:M/yyyy}" Header="{my:LocString ResourceKey=EntitySheet_OwnerShip_DisplayStartDate}" SortingState="Ascending">
                                <telerik:GridViewColumn.CellTemplate>
                                    <DataTemplate>
                                            <DatePicker x:Name="StartDateTimePicker" SelectedValue="{Binding StartDate,Mode=TwoWay, ValidatesOnDataErrors=True, NotifyOnValidationError=True,UpdateSourceTrigger=LostFocus}"/>
                                    </DataTemplate>
                                </telerik:GridViewColumn.CellTemplate>
                            </telerik:GridViewDataColumn>

                            <telerik:GridViewDataColumn Width="0.2*" DataFormatString="{}{0:M/yyyy}" Header="{my:LocString ResourceKey=EntitySheet_OwnerShip_DisplayEndDate}" SortingState="Ascending">
                                <telerik:GridViewColumn.CellTemplate>
                                    <DataTemplate>
                                        <DatePicker x:Name="StartDateTimePicker"  SelectedValue="{Binding EndDate,Mode=TwoWay, ValidatesOnDataErrors=True, NotifyOnValidationError=True,UpdateSourceTrigger=PropertyChanged}"  />
                                    </DataTemplate>
                                </telerik:GridViewColumn.CellTemplate>
                            </telerik:GridViewDataColumn>
                        </telerik:RadGridView.Columns>


                <i:Interaction.Triggers>
                            <i:EventTrigger EventName="PropertyChanged">
                                <cmd:EventToCommand Command="{Binding Path=ValidateStartDateCommand, Mode=OneWay}" CommandParameter="{Binding SelectedItem, ElementName=gridControl1}" />
                            </i:EventTrigger>
                        </i:Interaction.Triggers>

                      </telerik:RadGridView>

Я хочу сравнить startDate с endDate и отобразить ошибку, если endDate ‹ startDate, когда фокус теряется на одном из полей, но события не возникают (события возникают в других столбцах). Как я должен вызвать событие, позволяющее мне получить новые значения отредактированной строки и сравнить их?

заранее спасибо


person user790803    schedule 09.06.2011    source источник


Ответы (1)


Вы пытались реализовать интерфейс IDataErrorInfo в своей ViewModel (при условии, что вы используете MVVM) или в любом другом классе, к которому вы привязываете свою сетку данных. Реализация этого интерфейса должна позволить вам написать код проверки в индексаторе, чтобы получить желаемые результаты.

Надеюсь, это немного поможет.

person Gumbatron    schedule 17.10.2011