C# 将WPF视图绑定到两个DataContext
目标:根据组合框的选定值设置控件的可见性 问题:用于检查可见性的属性在VM中,但是我不知道如何使用它,因为C# 将WPF视图绑定到两个DataContext,c#,wpf,binding,datacontext,C#,Wpf,Binding,Datacontext,目标:根据组合框的选定值设置控件的可见性 问题:用于检查可见性的属性在VM中,但是我不知道如何使用它,因为DataContext已定义到另一个对象,即我是否需要绑定2个DataContext 详细信息: 我在视图中加载了一个CustomControl,它与DataContext关联(显示为网格的对象的列表: <GUI:Counterparties_UserInputs x:Name="UserInputs" DockPanel.Dock="Right" DataContext="{Bind
DataContext
已定义到另一个对象,即我是否需要绑定2个DataContext
详细信息:
我在视图中加载了一个CustomControl
,它与DataContext
关联(显示为网格的对象的列表
:
<GUI:Counterparties_UserInputs x:Name="UserInputs" DockPanel.Dock="Right" DataContext="{Binding Source={StaticResource counterpartiesDataView}}"/>
我遇到的问题是,代码隐藏从未被命中,因为我找不到如何将“额外的”DataContext
关联到视图
以下是我的代码:
public partial class Counterparties_UserInputs : UserControl
{
...
public Counterparties_UserInputs()
{
// this.DataContext = _cptyUserInputsVM;
_cptyUserInputsVM = new Counterparties_UserInputs_VM();
InitializeComponent();
}
}
以及从不点击属性
“SelectedCounterpartyType”的ViewModel:
public class Counterparties_UserInputs_VM : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private string _selectedCounterpartyType;
public string SelectedCounterpartyType
{
get
{
return _selectedCounterpartyType;
}
set
{
_selectedCounterpartyType = value;
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("SelectedCounterpartyType"));
}
}
}
}
我已经看到了这一点,但这并不完全是我正在做的事情……因此,我非常感谢您的帮助!谢谢!那么问题是什么?当您运行应用程序时,您的输出窗口必须说明什么?它可能会提供一些有用的信息。此外,您可以在每个setter中省去一些麻烦,请参见此处:我有更新了文本顶部(目标和问题),希望它更清晰。谢谢!
public class Counterparties_UserInputs_VM : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private string _selectedCounterpartyType;
public string SelectedCounterpartyType
{
get
{
return _selectedCounterpartyType;
}
set
{
_selectedCounterpartyType = value;
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("SelectedCounterpartyType"));
}
}
}
}