如何在加载按钮单击时显示网格分裂器?

时间:2013-09-02 20:52:48

标签: c# wpf xaml

我想让自定义用户控件中的gridsplitters可见性崩溃 基于父控件何时使用加载按钮加载了一些数据?我认为这样做的方法是在父控件上创建一个dataloaded属性,然后在usercontrol的触发器中设置一个触发器,如下所示:

但我似乎无法引用usercontrol(graphviewer)的属性。

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

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

1 个答案:

答案 0 :(得分:1)

试试这个...首先添加GraphViewer控件的XML命名空间 - 如下所示:

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

然后将其添加到Style中...它必须位于Style.Triggers集合中,因为您无法在DataTrigger集合中使用UserControl.Triggers

<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>
相关问题