我有一个带有两个RadioButtons和一个文本框的UserControl,并且具有相应的ViewModel到此视图。 我的问题是可以将此控件放在其他页面和属性中,即Radiobuttons必须在少数视图中禁用,在其他一些页面中启用 如何公开这些属性或从其他页面设置它 我希望UserControl成为其他页面的提供者视图
答案 0 :(得分:1)
您可以为每个视图创建bool DependencyPropertiy
:
public static readonly DependencyProperty IsRadioButtonEnabledProperty =
DependencyProperty.Register("IsRadioButtonEnabled", typeof(bool),
typeof(MainWindow), new UIPropertyMetadata(true));
public bool IsRadioButtonEnabled
{
get { return (bool)GetValue(IsRadioButtonEnabledProperty); }
set { SetValue(IsRadioButtonEnabledProperty, value); }
}
并在UserControl
内部使用它:
<RadioButton IsEnabled="{Binding IsRadioButtonEnabled, RelativeSource={
RelativeSource FindAncestor,
AncestorType={x:Type Views:YourUserControl}}}" ... />
然后,您可以从bool
外部绑定到此UserControl
属性,并设置是否启用控件:
<YourUserControl IsRadioButtonEnabled={Binding IsRadioButtonEnabled} ... />
然后在你的视图模型中:
public bool IsRadioButtonEnabled { get; set; }
然后禁用控件:
IsRadioButtonEnabled = false;