Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从ListView更改为DataGrid后出现验证错误_C#_Wpf_Mvvm - Fatal编程技术网

C# 从ListView更改为DataGrid后出现验证错误

C# 从ListView更改为DataGrid后出现验证错误,c#,wpf,mvvm,C#,Wpf,Mvvm,我有一个验证良好的listview,但我想更改listview中文本框的外观,所以我将其更改为datagrid。我改了之后,验证就搞砸了。每当添加一个自动名称时,我都会收到一条错误消息,说明该名称已经存在,即使它不存在。为什么listview很好?欢迎任何意见。这是代码 <DataTemplate> <TextBox Text="{Binding Path=RegionName, UpdateSourceTrigger=PropertyChanged

我有一个验证良好的listview,但我想更改listview中文本框的外观,所以我将其更改为datagrid。我改了之后,验证就搞砸了。每当添加一个自动名称时,我都会收到一条错误消息,说明该名称已经存在,即使它不存在。为什么listview很好?欢迎任何意见。这是代码

    <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>