2012-03-26 89 views
7

這應該很簡單,但我無法使其工作。 我有一個窗口(主XAML應用程序窗口)將文本塊綁定到窗口的屬性

我定義類型的屬性格式「測試」(誰和INT ID和DateTime TestDate)

 public Test CurrentTest 
    { 
     get 
     { 
      return currentTest; 
     } 
     set 
     { 
      currentTest = value; 
      OnPropertyChanged("CurrentTest"); 
     } 
    } 

我已經添加了OnPropertyChanged默認地將Impl :

public event PropertyChangedEventHandler PropertyChanged; 
    private void OnPropertyChanged(String property) 
    { 
     if (PropertyChanged != null) 
     { 
      PropertyChanged(this, new PropertyChangedEventArgs(property)); 
     } 
    } 

現在我嘗試將它綁定到窗口上的文本塊。 但它不工作:

<TextBlock Text="{Binding Source={StaticResource CurrentTest}, Path=TestDate, StringFormat=dd/MM/yyyy, TargetNullValue=Not Yet Set}"></TextBlock> 

,這不工作之一:

<TextBlock> 
      <TextBlock.Text> 
       <Binding ElementName="CurrentTest" Path="TestDate" TargetNullValue="not yet set" Mode="OneWay"></Binding> 
      </TextBlock.Text> 
     </TextBlock> 

我應該怎麼做纔能有文本塊顯示此屬性的日期?

+2

我想你知道如何設置的DataContext正確的,但是旁邊的PropertyChanged代碼的執行,你有這個類的背後? :INotifyPropertyChanged – Silvermind 2012-03-26 15:58:13

+0

你還檢查了輸出窗口的具體綁定錯誤? – Silvermind 2012-03-26 16:00:49

+0

你在哪裏正確的INotifyPropertyChanged – Dani 2012-03-26 16:11:43

回答

19

可以使用的RelativeSource屬性:

<TextBlock Text="{Binding Path=CurrentTest.TestDate, 
          RelativeSource={RelativeSource Mode=FindAncestor, 
                 AncestorType=Window}}" /> 
+0

這一個工程,但它只有一次,我已經將INotifyPropertyChanged添加到窗口類 - 所以謝謝@SilverMind以及! – Dani 2012-03-26 16:11:21

+0

爲什麼StaticResource不起作用? – Dani 2012-03-26 16:13:00

+0

@Dani,你爲什麼認爲它應該? StaticResource用於訪問資源,而不是視圖的屬性... – 2012-03-26 16:43:55

相關問題