0

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

在 DialogPropertyValueEditor 的构造函数中,我将 InlineEditorTemplate 设置为一个简单的 DataTemplate,其中包含一个 TextBlock,该 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 事件。

我必须单击设计器中的活动并返回它以查看更新的计数显示。

4

0 回答 0