我的项目中有5个UserControls
。在Button
单击主窗口时,我必须将相应的用户控件加载到主窗口。是否可以通过XAML实现?
我正在使用MVVM框架。
答案 0 :(得分: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 is Whatever项决定使用哪个控件。您可以在运行时通过在文本的文本字段中放置0或1来进行测试。然后,它将在Button或组合框之间切换。
希望这会有所帮助:)
答案 1 :(得分:0)
您可以在Xaml的主窗口中拥有用户控件并让它们折叠。您的viewmodel中将有一个bool值,您可以通过转换器绑定到用户控件的可见性(例如,true转换为Visibility.Visible)。单击主窗口上的按钮时,您可以将bool值设置为true,并显示控件。
不完全是纯粹的xaml方法,所以这可能对您没有帮助