C# UWP可见性绑定不工作(mvvmlight)
我对一件(我认为)简单的事情感到困惑;根据视图模型的绑定使UI元素可见。我使用mvvmlight框架。当绑定(布尔值)设置为C# UWP可见性绑定不工作(mvvmlight),c#,uwp,viewmodel,mvvm-light,visibility,C#,Uwp,Viewmodel,Mvvm Light,Visibility,我对一件(我认为)简单的事情感到困惑;根据视图模型的绑定使UI元素可见。我使用mvvmlight框架。当绑定(布尔值)设置为true时,可见性绑定不会对更改做出反应 XAML: 视图模型: public class MainViewModel : ViewModelBase { private bool _showNavigationButtons; public RelayCommand BrakingCommand { get; } public bool Show
true
时,可见性绑定不会对更改做出反应
XAML:
视图模型:
public class MainViewModel : ViewModelBase
{
private bool _showNavigationButtons;
public RelayCommand BrakingCommand { get; }
public bool ShowNavigationButtons
{
get => _showNavigationButtons;
set { Set(() => ShowNavigationButtons, ref _showNavigationButtons, value); }
}
public MainViewModel()
{
BrakingCommand = new RelayCommand(() =>
{
ShowNavigationButtons = true;
NavigationCommand.RaiseCanExecuteChanged();
});
}
}
我还尝试绑定“WPF方式”:
但这导致了完全相同的问题;视图不会对更改的属性作出反应
非常感谢您的帮助,为了……的爱
问题是绑定的默认模式是一次性。花一个小时来弄清楚。当我声明绑定如下时,它会按预期工作
Visibility="{x:Bind (Visibility) ViewModel.ShowNavigationButtons, Mode=OneWay}">
我希望有一天,这能帮助其他人摆脱困境。资源
booltVisibilityConverter
是否声明了?是的,是的。但是,对于x:bind语法,这是不必要的
public class MainViewModel : ViewModelBase
{
private bool _showNavigationButtons;
public RelayCommand BrakingCommand { get; }
public bool ShowNavigationButtons
{
get => _showNavigationButtons;
set { Set(() => ShowNavigationButtons, ref _showNavigationButtons, value); }
}
public MainViewModel()
{
BrakingCommand = new RelayCommand(() =>
{
ShowNavigationButtons = true;
NavigationCommand.RaiseCanExecuteChanged();
});
}
}
Visibility="{Binding ShowNavigationButtons, Converter{StaticResource BoolToVisibilityConverter}">
Visibility="{x:Bind (Visibility) ViewModel.ShowNavigationButtons, Mode=OneWay}">