1

我有一个带有两个 RadioButtons 和一个文本框的 UserControl,并且有一个对应于这个 View 的 ViewModel。我的问题是可以将此控件放置在其他页面中吗?属性,即单选按钮必须在少数视图中禁用并在其他一些视图中启用我如何公开这些属性或从其他页面设置它我希望 UserControl 成为其他页面的提供者视图页面

4

1 回答 1

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;
于 2013-10-04T11:35:34.583 回答