我知道这一定是件很愚蠢的事情,但我找不到如何检查ToggleSwitch是否开着。这是我的密码:
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:对象引用没有设置为对象的实例。
如果我写:
if(ToggleNamePrivacy.IsOn)为什么?
发布于 2014-05-31 00:23:08
解决方案:它必须是一个bug,但不能同时设置XAML中的" IsOn“属性和”切换“事件,否则IsOn将在页面加载之前触发切换事件。
不起作用:
<ToggleSwitch Toggled="ToggleSwitch_Toggled" IsOn="True" /> 工作:
<ToggleSwitch Toggled="ToggleSwitch_Toggled" />(然后可以通过代码设置IsOn。)
发布于 2014-05-30 15:50:04
听起来你的范围是正确的,否则它就不会编译了。从哪里调用的方法?如果它在InitializeComponent()之前,那么它将为null。我只需在方法开始时检查null并返回,因为在应用程序第一次启动时,它可能只是在初始集上被调用。
发布于 2016-01-27 18:31:24
对于那些在ListViewItem/GridViewItem中有相同问题的用户,切换是在ListViewItem/GridViewItem中。只需在XAML中订阅Toggle的Loaded事件,并在其中订阅Toggled。在XAML中:
<ToggleSwitch Loaded="ToggleSwitch_Loaded" />在C#中
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
}https://stackoverflow.com/questions/23957513
复制相似问题