1

UserControls私のプロジェクトには5つあります。メインウィンドウButtonをクリックすると、それぞれのユーザー コントロールをメイン ウィンドウにロードする必要があります。XAMLを介して達成することは可能ですか? 私はMVVMフレームワークを使用しています。

4

2 に答える 2

1

次の {Kazuo の提案の代替案} を行うことができます...私の簡単なテストでは問題なく動作しました。

<Windows.Resources>
    <ComboBox x:Key="options">
        <ControlTemplate x:Name="Button" TargetType="Control">
            <Button/>
        </ControlTemplate>
        <ControlTemplate x:Name="ComboBox" TargetType="Control">
            <ComboBox/>
        </ControlTemplate>
    </ComboBox>
</Windows.Resources>

次に、ウィンドウアイテムに次のようなものを入れます

<Control x:Name="myCotrol" Margin="364,70,27,215" Template="{Binding Mode=OneWay, Source={StaticResource options},Path=SelectedItem}"  />
<TextBox x:Name="Test" HorizontalAlignment="Left" Height="23" Margin="398,83,-1,0"  Text="{Binding Source={StaticResource options},Path=SelectedIndex}" VerticalAlignment="Top" Width="120"/>

Test は、どのコントロールを使用するかを決定するすべてのアイテムです。実行時に text の Text フィールドに 0 または 1 を入力してテストできます。これにより、ボタンまたはコンボボックスが切り替わります。

お役に立てれば :)

于 2013-07-08T10:11:30.497 に答える
0

Xaml のメイン ウィンドウに既にユーザー コントロールを配置し、それらを折りたたむことができます。ビューモデルには、コンバーターを介してユーザー コントロールの可視性にバインドする bool 値があります (たとえば、true は Visibility.Visible に変換されます)。メイン ウィンドウのボタンをクリックすると、bool 値を true に設定すると、コントロールが表示されます。

純粋な xaml アプローチではないため、これは役に立たないかもしれません

于 2013-07-08T09:13:57.770 に答える