【发布时间】:2018-10-31 18:47:48
【问题描述】:
在我发现为什么事情不工作之前,我被困了一段时间。我正在根据 Connected 的值更改两个不同 UserControls 的可见性,Connected 是 SetupViewModel(parent) 上的一个属性。这些用户控件之一还将其 DataContext 设置为在 SetupViewModel 中创建的视图模型。但是在设置 DataContext 时,连接的绑定不起作用。
这就是我想要的工作方式
<userControls:SessionSetupUserControl x:Name="SessionSetupUserControl" DataContext="{Binding SessionSetupViewModel}" Visibility="{Binding Connected, Mode=OneWay, Converter={StaticResource BoolToVis}, FallbackValue=Collapsed}" />
但是当使用这个时,可见性值不会更新。
当我删除 DataContext 时,可见性开始更新。
<userControls:SessionSetupUserControl x:Name="SessionSetupUserControl" Visibility="{Binding Connected, Mode=OneWay, Converter={StaticResource BoolToVis}, FallbackValue=Collapsed}" />
这是父视图模型。只显示相关的绑定。
public class SetupViewModel : BindableBase
{
private bool _connected;
public SessionSetupViewModel SessionSetupViewModel { get; private set; }
public bool Connected
{
get
{
return _connected;
}
private set
{
SetPropertyAndNotifyChanges(ref _connected, value);
}
}
}
我假设在解决可见性绑定时 UserControl 的 DataContext 已更改,但我不习惯使用 WPF 或绑定,因此我无法使其正常工作。
任何帮助将不胜感激。
【问题讨论】: