【发布时间】:2018-11-08 11:20:16
【问题描述】:
我有一个在 C# 中扩展 ViewModelBase 的类。复选框上已有触发器:
public bool PrintPackingCode
{
get
{
return this.reportConfiguration.PrintPackingCode;
}
set
{
this.reportConfiguration.PrintPackingCode = value;
this.OnPropertyChanged("PrintPackingCode");
}
}
我想挂接到该事件并呈现GroupBox 以禁用,但我找不到访问 GroupBox 的方法。在.xaml 中,我给我的盒子命名为PackingcodeGroupBox。我发现的所有方法和提示都不适用。我的尝试包括:
Direct Access: PackingcodeGroupBox.Enabled = false;
Using a x:Name
this.Resources["mykey"]
这里还有一些代码:
//At program start assign the view it's view model:
new SmlKonfigurationWindow(new SmlKonfigurationWindowVm(reportConfiguration, smlKonfigurationDialogVm));
public SmlKonfigurationWindow(ISmlKonfigurationWindowVm viewModel)
{
this.DataContext = viewModel;
this.viewModel = viewModel;
this.InitializeComponent();
this.ShowDialog();
}
xaml:
<CheckBox Content="Content" IsChecked="{Binding Path=PrintPackingCode, UpdateSourceTrigger=PropertyChanged}" Name="PrintPackingCode"/>
<GroupBox Header="Verpackungscode" Name="VerpackungscodeGroupbox">
//Stuff to be disabled
</GroupBox>
【问题讨论】:
-
为什么不将 GroupBox.IsEnabled 绑定到这个属性?
-
如果你知道它是如何工作的,我会的
-
从您的代码中发布一些 xaml sn-ps 并向我们展示您分配 viewModel 的代码