Wpf 在不同视图中访问一个Usercontrol
在不同视图中访问一个用户控件Wpf 在不同视图中访问一个Usercontrol,wpf,mvvm,user-controls,wpf-controls,prism,Wpf,Mvvm,User Controls,Wpf Controls,Prism,在不同视图中访问一个用户控件 这里,第一个带有单选按钮和其他元素的矩形应该是通用用户控件 下面带有灰色区域的框是其他视图。灰色区域必须显示UserControl。如箭头所示,仅显示这些字段。灰色区域将根据视图的不同而有所不同。开发人员基本上需要这些通用控件,而不是在所有位置重复此操作。有人可以建议使用哪种方法吗 在这里,灰框视图有自己的viewmodel…如果您询问如何在UI中的不同位置显示同一用户控件的不同元素,则usercontrol单独作为其viewmodel,然后,您可以在UserCo
这里,第一个带有单选按钮和其他元素的矩形应该是通用用户控件 下面带有灰色区域的框是其他视图。灰色区域必须显示UserControl。如箭头所示,仅显示这些字段。灰色区域将根据视图的不同而有所不同。开发人员基本上需要这些通用控件,而不是在所有位置重复此操作。有人可以建议使用哪种方法吗
在这里,灰框视图有自己的viewmodel…如果您询问如何在UI中的不同位置显示同一
用户控件的不同元素,则usercontrol单独作为其viewmodel,然后,您可以在UserControl
和Bind
上定义元素的Visibility
属性,然后在外部设置它们:
在用户控件的代码隐藏中
:
public static readonly DependencyProperty AreButtonsVisibleProperty =
DependencyProperty.Register("AreButtonsVisible", typeof(bool),
typeof(YourUserControlName), new UIPropertyMetadata(false));
public bool AreButtonsVisible
{
get { return (bool)GetValue(AreButtonsVisibleProperty); }
set { SetValue(AreButtonsVisibleProperty, value); }
}
然后在XAML中:
xmlns:Converters="clr-namespace:ApplictaionName.Converters"
xmlns:YourControlNamespace="clr-namespace:ApplictaionName.YourControlNamespace"
...
<UserControl.Resources>
<Converters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
</UserControl.Resources>
...
<Button Content="->" Visibility="{Binding AreButtonsVisible, RelativeSource={
RelativeSource AncestorType={x:Type YourControlNamespace:YourUserControl}},
Converter={StaticResource BooleanToVisibilityConverter}}" />
<Button Content="X" Visibility="{Binding AreButtonsVisible, RelativeSource={
RelativeSource AncestorType={x:Type YourControlNamespace:YourUserControl}},
Converter={StaticResource BooleanToVisibilityConverter}}" />
也许只是我,但我真的很难理解你想做什么。。。尝试简化您的问题每个视图是否都有不同的通用用户控件实例?如果您可以解释通用用户控件在每个视图上的行为以及灰色区域大小变化的原因,这将非常有用。常规视图是否会在每个导航视图上更改其样式?您是否考虑过为通用UserControl的视图在每个视图上定义一个嵌套区域?
<YourControlNamespace:YourUserControl AreButtonsVisible="False" ... />