相关疑难解决方法(0)

在AddNew或EditItem事务mvvm期间不允许WPF DataGrid"刷新"

我有以下网格

    <DataGrid

        x:Name="TablesDataGrid"
        Grid.Column="0"
        Grid.Row="1"
        ItemsSource="{Binding FilteredModels.View}"
        AlternationCount="2"
        AutoGenerateColumns="False"
        CanUserSortColumns="True"
        CanUserReorderColumns="False"
  CanUserDeleteRows="False"
  CanUserAddRows="False"
  SelectionMode="Extended"
        IsReadOnly="False"
  SelectionUnit="FullRow"
        RowHeight="25"
  HorizontalAlignment="Stretch"
  ColumnWidth="Auto">
            <DataGrid.Columns >
                <DataGridCheckBoxColumn Width="*" Binding="{Binding IsChecked, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"  IsReadOnly="False">
                    <DataGridCheckBoxColumn.HeaderTemplate>
                        <DataTemplate>
                            <CheckBox IsChecked="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGrid}}, Path=DataContext.CheckAll}"/>
                        </DataTemplate>
                    </DataGridCheckBoxColumn.HeaderTemplate>
                </DataGridCheckBoxColumn>
                <DataGridTextColumn Header="Source Table" Binding="{Binding SourceTableFullName}" Width="4*"></DataGridTextColumn>
                <DataGridTextColumn Header="EDW Schema"  Binding="{Binding SchemaName}" Width="2*"></DataGridTextColumn>
                <DataGridTextColumn Header="EDW Table" Binding="{Binding TableName}" Width="4*"></DataGridTextColumn>
                <DataGridTextColumn Header="Status" Binding="{Binding Status}" Width="*"></DataGridTextColumn>
            </DataGrid.Columns>
        </DataGrid>
Run Code Online (Sandbox Code Playgroud)

然后我有一个seachCommand在viewmodel中对collectionViewSource FilteredModel执行搜索,然后调用

this.FilteredModels.View.Refresh();
Run Code Online (Sandbox Code Playgroud)

当用户检查一些复选框并将网格发送到editmode然后执行搜索时,我们会收到以下错误

WPF DataGrid 'Refresh' is not allowed during an AddNew or EditItem …
Run Code Online (Sandbox Code Playgroud)

wpf mvvm wpfdatagrid

8
推荐指数
3
解决办法
1万
查看次数

在 AddNew 或 EditItem 事务期间不允许 DeferRefresh

我有一个包含 2 个 DataGrid 的窗口。如果我从第一个 DataGrid 中的一个特定列单击到另一个 DataGrid 的任何列,则会出现错误

在 AddNew 或 EditItem 事务期间不允许 DeferRefresh

这里出了什么问题?

第一个 DataGrid 是

<DataGrid x:Name="FirstDataGrid"
          ItemsSource="{Binding Parts, Mode=TwoWay}"
          SelectedItem="{Binding SelectedPart, Mode=TwoWay}"
          CellEditEnding="DataGrid_OnCellEditEnding" >
     <i:Interaction.Behaviors>
          <views:ScrollIntoViewBehavior />
     </i:Interaction.Behaviors>
          <DataGrid.Resources>
               <Style TargetType="{x:Type DataGridCell}">
                   <EventSetter Event="PreviewMouseLeftButtonDown" Handler="DataGridCell_PreviewMouseLeftButtonDown"></EventSetter>
               </Style>
          </DataGrid.Resources>
      <DataGrid.Columns>
          <DataGridTemplateColumn>
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <ItemsControl ItemsSource="{Binding Identifications, Mode=OneWay}">
                                <ItemsControl.ItemsPanel>
                                    <ItemsPanelTemplate>
                                        <StackPanel Orientation="Horizontal"/>
                                    </ItemsPanelTemplate>
                                </ItemsControl.ItemsPanel>
                                <ItemsControl.ItemTemplate>
                                    <DataTemplate>
                                        <TextBlock Margin="5,0,0,0">
                                            <Hyperlink NavigateUri="{Binding ArticleNumber, Mode=OneWay}" 
                                                        Command="{Binding ElementName=PartDataGrid, Path=DataContext.OpenIdentificationCommand}" CommandParameter="{Binding}" >                                    
                                                <TextBlock Text="{Binding ArticleNumber, Mode=OneWay}"/>
                                            </Hyperlink>
                                        </TextBlock>
                                    </DataTemplate>
                                </ItemsControl.ItemTemplate>
                            </ItemsControl>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate> …
Run Code Online (Sandbox Code Playgroud)

c# wpf datagrid mvvm

1
推荐指数
1
解决办法
3397
查看次数

标签 统计

mvvm ×2

wpf ×2

c# ×1

datagrid ×1

wpfdatagrid ×1