4

Visibilityプロパティがコンバーターによって制御されるMenuItems があります。ほとんどの場合、MenuItem は同じ可視性ロジック (同じコンバーター、同じパラメーター) を持っています。再入力を避けるために、それらを仮想的にグループ化して、可視性を一度だけ設定したいと考えています。

MenuItem をネストすることでそれを実現できることはわかっています。別の方法はありますか?

4

1 に答える 1

2

あなたが何をしたいのかはっきりしていませんが、スタイルが便利だと思います. 例を挙げます。ここでは、コンテキスト メニューを持つグリッドにボタンを作成します。Button のリソースで、MenuItem のスタイル (名前は付けられていません) を作成します。スタイルでは、作成した Binding を置き換えることで、可視性がどのように動作するかを指定できます。

<Window x:Class="StackOverflow.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Button Content="Testing" VerticalAlignment="Center" HorizontalAlignment="Center">
            <Button.Resources>
                <Style TargetType="{x:Type MenuItem}">
                    <Setter Property="Visibility" Value="{Binding SomeBinding, Converter=SomeConverter}"/>
                </Style>
            </Button.Resources>
            <Button.ContextMenu>
                <ContextMenu>
                    <MenuItem Header="1"/>
                    <MenuItem Header="2"/>
                    <MenuItem Header="3"/>
                    <MenuItem Header="4"/>
                </ContextMenu>
            </Button.ContextMenu>
        </Button>
    </Grid>
</Window>
于 2013-03-22T10:39:49.337 に答える