0

我想让自定义用户控件中的网格拆分器根据父控件何时使用加载按钮加载一些数据而折叠可见性?我认为这样做的方法是在父控件上创建一个属性数据加载,然后在用户控件的触发器中设置一个触发器,如下所示:

但我似乎无法让它引用用户控件(graphviewer)的属性。

另外,属性触发器是否可以像下面那样引用控件中的其他控件?我假设我的语法错误或者我想要做的事情是不可能的。到目前为止,在对控制模板进行修改时,我只弄乱了触发器模板中的一些基本属性,所以我真的不知道我想要做的事情是否可行。

  <UserControl.Triggers>
    <Trigger Property="GraphViewer.DataLoaded" Value="true">
      <Setter Property="SignalNameGridSplitter.Visibility" Value="Visible" />
    </Trigger>
  </UserControl.Triggers>
4

1 回答 1

1

试试这个......首先添加你的GraphViewer控件的 XML 命名空间 - 像这样:

xmlns:YourXmlNamespace="clr-namespace:YourApplicationName.FolderNameIfApplicable"

然后将其添加到 a Style... 它必须在Style.Triggers集合中,因为您不能DataTriggerUserControl.Triggers集合中使用 a :

<UserControl.Style>
    <Style>
        <Style.Triggers>
            <DataTrigger Binding="{Binding DataLoaded, RelativeSource={RelativeSource 
FindAncestor, AncestorType={x:Type YourXmlNamespace:GraphViewer}}}" Value="True">
                <Setter Property="SignalNameGridSplitter.Visibility" Value="Visible" />
            </DataTrigger>
        </Style.Triggers>
    </Style>
</UserControl.Style>
于 2013-09-02T21:31:56.807 回答