Я застрял на этом некоторое время, прежде чем я даже узнал, почему все не работает. Я изменяю видимость двух разных элементов управления UserControl, основываясь на значении 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}" />
Это родительская ViewModel. Отображаются только соответствующие привязки.
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);
}
}
}
Я предполагаю, что DataContext из UserControl изменяется, когда разрешается привязка видимости, но я не привык работать ни с WPF, ни с привязками, поэтому я не смог заставить его работать.
Любая помощь будет наиболее ценной.