首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查ToggleSwitch是否开着

检查ToggleSwitch是否开着
EN

Stack Overflow用户
提问于 2014-05-30 14:54:07
回答 3查看 5.7K关注 0票数 2

我知道这一定是件很愚蠢的事情,但我找不到如何检查ToggleSwitch是否开着。这是我的密码:

代码语言:javascript
复制
    private void ToggleNamePrivacy_Toggled(object sender, RoutedEventArgs e)
    {
        if (ToggleNamePrivacy.IsOn == true)
        {
            PrivacyImage.Source = new BitmapImage(new Uri("Assets/public.png", UriKind.Relative));
        }
        else
        {
            PrivacyImage.Source = new BitmapImage(new Uri("Assets/private.png", UriKind.Relative));
        }
    }

if子句导致

NullReferenceException:对象引用没有设置为对象的实例。

如果我写:

代码语言:javascript
复制
if(ToggleNamePrivacy.IsOn)

为什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-05-31 00:23:08

解决方案:它必须是一个bug,但不能同时设置XAML中的" IsOn“属性和”切换“事件,否则IsOn将在页面加载之前触发切换事件。

不起作用:

代码语言:javascript
复制
<ToggleSwitch Toggled="ToggleSwitch_Toggled" IsOn="True" /> 

工作:

代码语言:javascript
复制
<ToggleSwitch Toggled="ToggleSwitch_Toggled" />

(然后可以通过代码设置IsOn。)

票数 3
EN

Stack Overflow用户

发布于 2014-05-30 15:50:04

听起来你的范围是正确的,否则它就不会编译了。从哪里调用的方法?如果它在InitializeComponent()之前,那么它将为null。我只需在方法开始时检查null并返回,因为在应用程序第一次启动时,它可能只是在初始集上被调用。

票数 1
EN

Stack Overflow用户

发布于 2016-01-27 18:31:24

对于那些在ListViewItem/GridViewItem中有相同问题的用户,切换是在ListViewItem/GridViewItem中。只需在XAML中订阅Toggle的Loaded事件,并在其中订阅Toggled。在XAML中:

代码语言:javascript
复制
<ToggleSwitch Loaded="ToggleSwitch_Loaded" />

在C#中

代码语言:javascript
复制
  private void ToggleSwitch_Loaded(object sender, RoutedEventArgs e)
        {
            ToggleSwitch toggle = (ToggleSwitch)sender;
            toggle.Toggled += ToggleSwitch_Toggled;
        }

  private void ToggleSwitch_Toggled(object sender, RoutedEventArgs e)
        {
            //Your logic
        }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23957513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档