0

在我的模型中,我有以下代码通过对话框更改类别。

        internal DiagramCategory ChangeCategoryWithDialog()
        {
            DiagramCategory diagramCategory = DiagramCategory.Other;
            AddCategoryView diagramView = new AddCategoryView();
            bool? showDialog = diagramView.ShowDialog();
            if (showDialog.HasValue && showDialog.Value)
            {
                if (diagramView.DataContext is AddCategoryViewModel)
                {
                    AddCategoryViewModel addCategoryViewModel = (AddCategoryViewModel)diagramView.DataContext;
                    diagramCategory = addCategoryViewModel.SelectedCategory;
                }
            }
            return diagramCategory;
        }

这段代码工作正常。在视图模型中,调用此方法的位置如下所示:

 private void SelectCategory(object parameter)
        {
            if (parameter is DiagramCategory && this.SelectedDiagramEntry != null)
            {
                DiagramCategory diagramCategory = this.financialModel.ChangeCategoryWithDialog();
                this.SelectedDiagramEntry.Category = diagramCategory;
                OnPropertyChanged("SelectedDiagramEntry");
            }
        }

在视图中,我在单元格中有一个带有按钮的 DataGridTemplateColumn。此按钮的内容是图像。xml是

<DataGridTemplateColumn Header="Category" SortMemberPath="Category">
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <Button x:Name="categoryButton" Style="{StaticResource Flat}" Tag="{Binding Category}"
                                        Command="{Binding Path=DataContext.SelectCategoryCommand, 
                                                    RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}}"
                                        CommandParameter="{Binding ElementName=categoryButton, Path=Tag}">
                                    <Image Source="{Binding Category, Converter={StaticResource categoryConverter}}"/>
                                </Button>
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>

DataGrid 的定义是

<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding DiagramEntries}"
                      SelectedItem="{Binding SelectedDiagramEntry, UpdateSourceTrigger=PropertyChanged}"
                      CanUserResizeRows="False" SelectionMode="Single" SelectionUnit="FullRow" 
                      IsTextSearchEnabled="True" AlternationCount="2">

DiagramEntries 是一个带有 DiagramEntries 的 ObservableCollection。DiagramEntry-Class 只包含四个属性。Category-Property 是一个自定义枚举。

我的问题是,调用 SelectCategory-Method 后,datagridrow 中按钮内的图像没有更新。我究竟做错了什么?我已经尝试添加对OnPropertyChanged("Category"). 不幸的是,这也不起作用

4

0 回答 0