我想让自定义用户控件中的gridsplitters可见性崩溃 基于父控件何时使用加载按钮加载了一些数据?我认为这样做的方法是在父控件上创建一个dataloaded属性,然后在usercontrol的触发器中设置一个触发器,如下所示:
但我似乎无法引用usercontrol(graphviewer)的属性。
此外,属性触发器可以引用控件中的其他控件,就像我在下面所做的那样吗?我假设我的语法错误或我想做的事情是不可能的。到目前为止,在对控件模板进行修改时,我只是搞乱了触发器模板中的一些基本属性,所以我真的不知道我想做的是否可能。
<UserControl.Triggers>
<Trigger Property="GraphViewer.DataLoaded" Value="true">
<Setter Property="SignalNameGridSplitter.Visibility" Value="Visible" />
</Trigger>
</UserControl.Triggers>
答案 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>