在不同的视图中访问一个用户控件
这里第一个带有单选按钮和其他元素的矩形应该是通用的用户控件。
下面带有灰色区域的框是其他视图。灰色区域必须显示 UserControl。如箭头所示,仅显示那些字段。灰色区域将根据视图而有所不同。基本上,开发人员需要这些通用控件而不是重复此操作在所有地方。有人可以建议走哪条路。
这里的灰色框视图有自己的视图模型......并且单独的用户控件作为它的视图模型
在不同的视图中访问一个用户控件
这里第一个带有单选按钮和其他元素的矩形应该是通用的用户控件。
下面带有灰色区域的框是其他视图。灰色区域必须显示 UserControl。如箭头所示,仅显示那些字段。灰色区域将根据视图而有所不同。基本上,开发人员需要这些通用控件而不是重复此操作在所有地方。有人可以建议走哪条路。
这里的灰色框视图有自己的视图模型......并且单独的用户控件作为它的视图模型
如果您询问如何UserControl
在 UI 的不同位置显示相同的不同元素,那么您可以在元素的bool
属性上定义一些属性,UserControl
然后在外部设置它们:Bind
Visibility
在您背后的代码中UserControl
:
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
,你可以隐藏Button
s:
<YourControlNamespace:YourUserControl AreButtonsVisible="False" ... />