C# 从ListView更改为DataGrid后出现验证错误
我有一个验证良好的listview,但我想更改listview中文本框的外观,所以我将其更改为datagrid。我改了之后,验证就搞砸了。每当添加一个自动名称时,我都会收到一条错误消息,说明该名称已经存在,即使它不存在。为什么listview很好?欢迎任何意见。这是代码C# 从ListView更改为DataGrid后出现验证错误,c#,wpf,mvvm,C#,Wpf,Mvvm,我有一个验证良好的listview,但我想更改listview中文本框的外观,所以我将其更改为datagrid。我改了之后,验证就搞砸了。每当添加一个自动名称时,我都会收到一条错误消息,说明该名称已经存在,即使它不存在。为什么listview很好?欢迎任何意见。这是代码 <DataTemplate> <TextBox Text="{Binding Path=RegionName, UpdateSourceTrigger=PropertyChanged
<DataTemplate>
<TextBox Text="{Binding Path=RegionName, UpdateSourceTrigger=PropertyChanged}"
TextChanged="regionTextBox_TextChanged" />
</DataTemplate>
验证正常的Listview:
<ListView Name="_regionQueryListBox" Width="122"
HorizontalAlignment="Left" VerticalAlignment="Stretch"
DataContext="{Binding}" IsSynchronizedWithCurrentItem="True"
Style="{StaticResource ListViewRegionSelectorStyle}"
ItemsSource="{Binding Path=Model}">
<ListView.View>
<GridView>
<GridViewColumn Header="Region"
Width="{Binding Path=ActualWidth, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ListView}}">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBox HorizontalAlignment="Left" VerticalAlignment="Stretch"
Text="{Binding Path=RegionName}">
</TextBox>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
<DataTemplate>
<TextBox Text="{Binding Path=RegionName, UpdateSourceTrigger=PropertyChanged}"
TextChanged="regionTextBox_TextChanged" />
</DataTemplate>
我猜datagrid的默认updatesourcetrigger=lostfocus会弄乱您的验证
<DataTemplate>
<TextBox Text="{Binding Path=RegionName, UpdateSourceTrigger=PropertyChanged}"
TextChanged="regionTextBox_TextChanged" />
</DataTemplate>