C# xaml双向绑定到PhoneApplicationPage代码隐藏中的属性

C# xaml双向绑定到PhoneApplicationPage代码隐藏中的属性,c#,windows-phone-7,xaml,C#,Windows Phone 7,Xaml,很简单,我的页面上有一个这样的切换开关 <toolkit:ToggleSwitch x:Name="togLocation" VerticalAlignment="Center" Style="{StaticResource gToggleSwitchStyle}" Foreground="{StaticResource brLightFont}" Loaded="togLocation_Loaded" IsChecked="{Binding LocationTrackin

很简单,我的页面上有一个这样的切换开关

<toolkit:ToggleSwitch x:Name="togLocation" VerticalAlignment="Center"
    Style="{StaticResource gToggleSwitchStyle}" Foreground="{StaticResource brLightFont}"
    Loaded="togLocation_Loaded" IsChecked="{Binding LocationTrackingEnabled, Mode=TwoWay}"/>
如您所见,默认值为false,因此toggleswitch.IsChecked应为false。不,这是真的。我使用断点检查LocationTrackingEnabled,它从未改变,因此绑定显然不起作用

我在代码隐藏中尝试过这个

DataContext = this;
我也在页面的xaml中尝试过这一点

DataContext="{Binding RelativeSource={RelativeSource Self}}"

我以前做过绑定,但我看不出问题所在。

这不需要成为从属属性。只需将其用作常规属性即可。另外,在运行时检查调试输出——如果有绑定问题,它将显示在那里。

无绑定问题。作为双向绑定,我不需要DependencyProperty或use INotifyPropertyChanged吗?您确定该字段已设置为true,还是基于UI中未设置切换的事实?你能在里面放一个文本块来显示属性的值吗?最后一件事。。。样式设置为什么?尝试删除样式,看看它是否有任何效果。我在其中放置了一个textblock,并将元素属性绑定到toggle.IsSelected。在“混合”中,其设置为false,但加载后将更改为true。我在按钮单击事件上放置了一个断点,以便查看LocationTrackingEnabled值,并将其设置为False。样式只是一种视觉样式,即控件的颜色。这很奇怪。并不是说您必须这样做,而是在构造函数中InitializeComponent之后尝试将其设置为false。另外,我知道你说你两个都试过了,但我会把它作为一个非依赖属性来试。如果这仍然是一个问题,请在这里发表评论,我将在今晚晚些时候检查。我刚刚创建了一个项目,就像你一样,它工作正常。我唯一能想到的是,在toguloaded方法中,您将值设置为true。你没有发布那部分代码,所以我不知道。你的
LocationTrackingEnabled
属性的父类是什么?它是一个PhoneApplicationPage。因此,页面上的toggleswitch基本上绑定到在代码隐藏中创建的页面上的属性
DataContext="{Binding RelativeSource={RelativeSource Self}}"