c# - 切换按钮两种方式绑定(bind)不起作用(通用 Windows 平台)

标签 c# wpf windows xaml win-universal-app

我正在尝试将 ToggleButton 上的“IsChecked”属性绑定(bind)到“ModelView.IsEnabled”。
“ModelView.IsEnabled”始终为“false”
但不知何故,ToggleButton 仍然可以显示为“已选中”。
绑定(bind)有问题吗?
enter image description here

XAML

...
<Page.Resources>
    <ModelView:ModelView x:Key="ModelView"/>
</Page.Resources>
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <ToggleButton IsChecked="{Binding Source={StaticResource ModelView}, Path=IsEnabled, Mode=TwoWay}">
        <TextBlock >UWP Toggle Button</TextBlock>
    </ToggleButton>
</Grid>
...

ModelView.cs

using...

namespace App2
{
    class ModelView : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;
        public event EventHandler CanExecuteChanged;

        private bool _isEnabled;

        public bool IsEnabled
        {
            get {
                return _isEnabled;
            }
            set
            {
                _isEnabled = false;
                OnPropertyChanged("IsEnabled");
            }
        }

        protected void OnPropertyChanged(string name)
        {
            PropertyChangedEventHandler handler = PropertyChanged;
            if (handler != null)
            {
                handler(this, new PropertyChangedEventArgs(name));
            }
        }
    }
}

最佳答案

试试这个,它对我有用: 1.Xaml代码更改:

    <Grid>
    <Grid.DataContext>
        <soHelpProject:MainViewModel/>
    </Grid.DataContext>
    <ToggleButton IsChecked="{Binding IsToggled, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}">
        <TextBlock >UWP Toggle Button</TextBlock>
    </ToggleButton>
</Grid>

问候,

关于c# - 切换按钮两种方式绑定(bind)不起作用(通用 Windows 平台),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33533146/

相关文章:

c# - MVVM 将嵌套 subview 连接到 subview 模型

python - 使用 GUI 运行 Python 脚本时如何摆脱 "Command Line"窗口?

c# - c++和c#应用程序通过网络进行通信

c# - 如何在 Windows 8 中创建大于屏幕的 View

wpf - 如何显示在WPF(MVVM)中单击确定并单击取消的对话框?

python 没有足够的 RAM 使用磁盘空间而不是 RAM

windows - 如何为 Windows 7 准备 Windows 注册最近使用列表?

C# 填充 treeview 并在我无权读取的目录上出现错误

c# - 如何让新的异步语义在 VS2017 RC 中工作?

wpf - 一次更新 UserControl 中的所有绑定(bind)