2012-05-16 31 views
0

確定相當簡單,我的頁面上有一個ToggleSwitch,就像這樣。xaml Twoway綁定到PhoneApplicationPage代碼中的一個屬性

<toolkit:ToggleSwitch x:Name="togLocation" VerticalAlignment="Center" 
    Style="{StaticResource gToggleSwitchStyle}" Foreground="{StaticResource brLightFont}" 
    Loaded="togLocation_Loaded" IsChecked="{Binding LocationTrackingEnabled, Mode=TwoWay}"/> 
在同一頁面背後的代碼

我有以下

public partial class Setup : PhoneApplicationPage 
{ 

    public bool LocationTrackingEnabled 
    { 
     get { return (bool)GetValue(LocationTrackingEnabledProperty); } 
     set 
     { 
      SetValue(LocationTrackingEnabledProperty, value); 
     } 
    } 

    public static readonly DependencyProperty LocationTrackingEnabledProperty = 
     DependencyProperty.Register("LocationTrackingEnabled", 
     typeof(bool), 
     typeof(Setup), 
     new PropertyMetadata(false)); 

    // blah blah rest of the page code follows on 

正如你所看到的默認值是假的,因此toggleswitch.IsChecked應該是假的。不是它的真實。使用斷點我檢查LocationTrackingEnabled,它永遠不會變得如此清楚綁定不起作用。

我已經在後面的代碼中試過了。

DataContext = this; 

我也曾在頁面

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

之前,我已經做了綁定的XAML試過,但我看不到的問題。

+0

「LocationTrackingEnabled」屬性的父類是什麼? –

+0

其PhoneApplicationPage。所以基本上,頁面上的切換開關綁定到在 – Gaz83

回答

0

這不需要是DependencyProperty。只要使用它作爲一個普通的財產。另外,當你運行時檢查你的調試輸出 - 如果你有一個綁定的問題,它會出現在那裏。

+0

後面的代碼中創建的頁面上的一個屬性,無需綁定問題。因爲它的雙向綁定不需要我使用DependencyProperty或使用INotifyPropertyChanged?無論如何, – Gaz83

+0

嘗試了一個固定的財產,沒有改變。 – Gaz83

+0

您確定該字段設置爲true,或者您是否將此設置爲切換未在用戶界面中設置的事實?你可以在那裏放置一個TextBlock,也顯示了屬性的值?最後一件事......風格的設定是什麼?嘗試刪除樣式,看看它是否有任何作用。 – Robaticus

相關問題