C# 如何使InlineEditorTemplate的内容在其基础PropertyValue更新时更新

C# 如何使InlineEditorTemplate的内容在其基础PropertyValue更新时更新,c#,wpf,workflow-foundation-4,C#,Wpf,Workflow Foundation 4,我有一个自定义WF4活动的对象集合,用户可以在设计器中编辑。我正在使用DialogPropertyValueEditor从PropertyGrid弹出一个编辑器对话框,可用于添加\编辑\删除集合中的项目 public class DataSourceFieldMappingsPropertyEditor : DialogPropertyValueEditor { public DataSourceFieldMappingsPropertyEditor() { base

我有一个自定义WF4活动的对象集合,用户可以在设计器中编辑。我正在使用DialogPropertyValueEditor从PropertyGrid弹出一个编辑器对话框,可用于添加\编辑\删除集合中的项目

public class DataSourceFieldMappingsPropertyEditor : DialogPropertyValueEditor
{
    public DataSourceFieldMappingsPropertyEditor()
    {
      base.InlineEditorTemplate = EditorDataTemplatesResources.GetGenericListDialogDataTemplate();
    }

    public override void ShowDialog(PropertyValue propertyValue, System.Windows.IInputElement commandSource)
    {
       //display dialog
    }
}
在DialogPropertyValueEditor的构造函数中,我将InlineEditorTemplate设置为一个简单的DataTemplate,该DataTemplate包含一个显示集合中当前项数的TextBlock

public class DataSourceFieldMappingsPropertyEditor : DialogPropertyValueEditor
{
    public DataSourceFieldMappingsPropertyEditor()
    {
      base.InlineEditorTemplate = EditorDataTemplatesResources.GetGenericListDialogDataTemplate();
    }

    public override void ShowDialog(PropertyValue propertyValue, System.Windows.IInputElement commandSource)
    {
       //display dialog
    }
}
数据模板如下所示:

<DataTemplate x:Key="editorDataTemplatesGenericListDialog">
<Grid>
  <Grid.ColumnDefinitions>
    <ColumnDefinition Width="*" />
    <ColumnDefinition Width="Auto" />
  </Grid.ColumnDefinitions>

  <TextBlock Grid.Column="0" 
             Text="{Binding Path=Value, 
             Converter={StaticResource ResourceKey=GenericListConverter}, Mode=OneWay, pdateSourceTrigger=PropertyChanged}" />

  <sapp:EditModeSwitchButton Grid.Column="1" TargetEditMode="Dialog" />

</Grid>
GenericListConverter只查看集合并显示0项、5项等

我的问题是:如何使InlineEditorTemplate在基础集合更改时自动更新自身。InlineEditorTemplate的DataContext是PropertyValue,但不知何故,绑定没有钩住PropertyChanged事件


我必须在设计器中单击“活动”的一部分,然后返回以查看更新的计数显示。

您知道ModelItem会包装您的活动、其所有属性以及除这些属性中的基本体之外的所有类型实例吗?它是提供属性更改通知的ModelItem吗?如果编辑器未绑定到ModelItem,则不会收到这些属性更改通知?通常情况下,人们并不理解所有这些,而是试图通过使用GetCurrentValue将实际实例包装到ModelItem中来绕过整个ModelItem。这可能会导致此问题和其他问题,例如MI和活动之间的同步问题。是的,我知道ModelItem是如何工作的,并且我已确保以正确的方式通过ModelItem对此集合进行所有更改。不知何故,InlineEditorTemplate中的Textblock没有检测到集合的更改并刷新自身。我甚至尝试使用ModelPropertyEntryToModelItemConverter将DataContext更改为th ModelItem并绑定到ModelItem.PropertyName,但它仍然没有拾取任何更改事件。。。。