我使用 BoolToVisConverter 绑定 RadioButton 可见性。
我将其放入 xaml 文件中:
xmlns:VM="clr-namespace:ScreenS.ViewModel"
<Window.DataContext>
<VM:MainViewModel />
</Window.DataContext>
<Window.Resources>
<BooleanToVisibilityConverter x:Key="BoolToVisConverter" />
</Window.Resources>
<RadioButton x:Name="SCB0" Visibility="{Binding ShowSCB0, Converter={StaticResource BoolToVisConverter}, FallbackValue=Hidden}" />
在 MainViewModel 文件中,我输入:
using System.ComponentModel;
namespace ScreenS.ViewModel
{
public class MainViewModel : INotifyPropertyChanged
{
private bool _scb0;
private void NotifyPropertyChanged(string info)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(info));
}
}
public event PropertyChangedEventHandler PropertyChanged;
public bool ShowSCB0
{
get { return _scb0; }
set
{
_scb0 = value;
NotifyPropertyChanged("ShowSCB0");
}
}
}
最后,在 MainWindow 文件中,我设置:
public MainWindow()
{
InitializeComponent();
DataContext = new MainViewModel();
}
MainViewModel mainView => DataContext as MainViewModel;
private void Window_Loaded(object sender, RoutedEventArgs e)
{
mainView.ShowSCB0 = true;
}
到目前为止,一切都运行良好。问题是当我尝试从另一个类更改这个值时。我在用:
class abc
{
MainViewModel viewModel = new MainViewModel();
public void someFunction()
{
viewModel.ShowSCB0 = true;
}
这不会设置可见性..
我有点迷失了,我哪里错了?
心有法竹
相关分类