Правило валидации сетки данных Wpf для уникального поля

Я получил Suclassed ValidationRule с именем UniqueNameSolidWoodRule, чтобы проверить наличие дублирующихся записей в сетке данных.

Вот код:

<code>public class UniqueNameSolidWoodRule : ValidationRule
{
    public CollectionViewSource CurrentCollection { get; set; }

    public override ValidationResult Validate(object value, CultureInfo cultureInfo)
    {
        if (value != null)
        {
            ObservableCollection<SolidWood_VM> castedCollection = (ObservableCollection<SolidWood_VM>)CurrentCollection.Source;

            foreach (SolidWood_VM swVM in castedCollection)
            {
                if (swVM.Designation == value.ToString())
                {
                    return new ValidationResult(false, ResourcesManager.Instance.GetString("DuplicatedRecord"));
                }
            }
        }

        return new ValidationResult(true, null);
    }
}
</code>

А вот фрагмент кода XAML:

<code><DataGrid.Resources>
        <CollectionViewSource x:Key="CurrentSolidWoodCollection" Source="{Binding Path=SolidWoods}" />
</DataGrid.Resources>

 <DataGridTextColumn x:Name="Column2" Header="{x:Static p:Resources.Designation}" Width="auto">
        <DataGridTextColumn.Binding>
            <Binding Path="Designation" ValidatesOnDataErrors="True" UpdateSourceTrigger="LostFocus">
                 <Binding.ValidationRules>
                        <my:UniqueNameSolidWoodRule  CurrentCollection="{StaticResource CurrentSolidWoodCollection}"/>
                  </Binding.ValidationRules>
             </Binding>
         </DataGridTextColumn.Binding>
  </DataGridTextColumn>
</code>

Моя проблема в том чтоsometimes это правило сравнивает значение со своей строкой. Как я мог предотвратить это? Мне кажется, мне нужно свойство row.index, связанное со значением, для сравнения, но, к сожалению, я не могу найти выход для достижения этой цели.

Ответы на вопрос(1)

Ваш ответ на вопрос