如何在其基础PropertyValue更新时获取InlineEditorTemplate的内容以进行更新

时间:2012-07-09 14:35:02

标签: c# wpf workflow-foundation-4

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

在DialogPropertyValueEditor的构造函数中,我将InlineEditorTemplate设置为一个简单的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如下所示:

<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 Items”,“5 Items”等。

我的问题是:当底层集合发生变化时,如何让InlineEditorTemplate自动更新。 InlineEditorTemplate的DataContext是PropertyValue,但不知何故绑定不会挂钩到PropertyChanged事件。

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

0 个答案:

没有答案