0

親コントロールがロード ボタンを使用してデータをロードしたタイミングに基づいて、カスタム ユーザー コントロールのグリッドスプリッターの可視性を縮小したいですか? これを行う方法は、親コントロールにデータロードされたプロパティを作成し、以下のようにユーザーコントロールのトリガーにトリガーを設定することだと思いました:

しかし、ユーザーコントロール(グラフビューアー)のプロパティを参照するようには見えません。

また、以下で行ったように、プロパティ トリガーはコントロール内の他のコントロールを参照できますか? 構文が間違っているか、やろうとしていることは不可能だと思います。これまでのところ、コントロール テンプレートを変更するときに、トリガー テンプレート内のいくつかの基本的なプロパティをいじっただけなので、自分がやろうとしていることが可能かどうかはよくわかりません。

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

1 に答える 1

1

これを試してください...最初に、コントロールの XML 名前空間を追加しますGraphViewer- 次のようにします:

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

次に、これを a に追加しStyleます ...コレクション内で a をStyle.Triggers使用できないため、コレクション内にある必要があります。DataTriggerUserControl.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>
于 2013-09-02T21:31:56.807 に答える