目标:根据ComboBox
问题:用于检查可见性的属性位于VM中,但我不知道如何使用它,因为DataContext
已经定义到另一个对象,即我需要绑定2个datacontexts?!
详细信息:
我有一个CustomControl
我在视图中加载DataContext
(List
个显示为网格的对象:
<GUI:Counterparties_UserInputs x:Name="UserInputs" DockPanel.Dock="Right" DataContext="{Binding Source={StaticResource counterpartiesDataView}}"/>
在该用户控件中,我有一些StackPanel
,应根据ComboBox
的选择触发可见性:
<ComboBox ItemsSource="{Binding Source={StaticResource CounterpartyTypes}}" SelectedValue="{Binding SelectedCounterpartyType}"/>
<StackPanel Visibility="{Binding Path=SelectedCounterpartyType,Converter={StaticResource SelectedValueToVisible}}"/>
我遇到的问题是背后的代码永远不会被命中,因为我找不到如何将“额外”DataContext
与视图相关联。
这是我背后的代码:
public partial class Counterparties_UserInputs : UserControl
{
...
public Counterparties_UserInputs()
{
// this.DataContext = _cptyUserInputsVM;
_cptyUserInputsVM = new Counterparties_UserInputs_VM();
InitializeComponent();
}
}
从未点击Property
“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"));
}
}
}
}
我已经看到answer了,但这并不是我正在做的事情......所以非常感谢你的帮助!谢谢!