如何防止绑定到TextBox的对象属性修改DataGrid的CollectionViewSource?
问题描述
我已将MachineViewModel的EraNumber属性绑定至TextBox的Text属性,同时将MachineViewModel的CollectionViewSource绑定至DataGrid。当前遇到的问题是:每当修改TextBox的值时,绑定到DataGrid的CollectionViewSource中的每一项都会同步变为TextBox的新值。
相关XAML代码
用户控件与布局代码
<UserControl.DataContext> <Vm:MachineViewModel/> </UserControl.DataContext> <Grid x:Name="vehiclesGrid" Width="390" ShowGridLines="false" > <Grid.RowDefinitions> <RowDefinition/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition/> <ColumnDefinition/> </Grid.ColumnDefinitions> <Label x:Name="lblVehicleEra" Content="Era Number"/> <TextBox x:Name="txtVehicleEra" Grid.Column="2" PreviewTextInput="numbersOnly" Text="{Binding Era, NotifyOnTargetUpdated=True, NotifyOnValidationError=True, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}" Style="{StaticResource TextError}" messenger:CommandBehavior.RoutedEventName="LostFocus" messenger:CommandBehavior.TheCommandToRun="{Binding EraNumberChangedCommand}" />
DataGrid代码
<DataGrid x:Name="dataDisplayReport" EnableColumnVirtualization="True" EnableRowVirtualization="True" HorizontalScrollBarVisibility="Auto" HorizontalAlignment="Stretch" Grid.ColumnSpan="2" Width="Auto" AutoGenerateColumns="True" ItemsSource="{Binding Source={StaticResource cvsMachines}}" CanUserAddRows="False" > <DataGrid.ContextMenu> <ContextMenu> <MenuItem Header="Update" Command="{Binding UpdateMachine}"/> </ContextMenu> </DataGrid.ContextMenu> </DataGrid>
内容的提问来源于stack exchange,提问作者sorsa mele
相关产品推荐
相关产品推荐

