2012-03-26 14 views
7

Das sollte einfach sein, aber ich kann es nicht zum Laufen bringen. Ich habe ein Fenster (Haupt XAML App Fenster)Binden eines TextBlocks an die Eigenschaft eines Fensters

ich einen propery vom Typ "Test" definiert haben (wer und int ID und Datetime Datumtest hat)

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

ich die OnPropertyChanged Impl hinzugefügt haben :

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

und jetzt versuche ich, es an einen Textblock im Fenster zu binden. Aber es funktioniert nicht:

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

und diese entweder nicht funktioniert:

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

Was soll ich tun, Textblock dem Datum dieser Eigenschaft zeigen haben?

+2

Ich denke, Sie wissen, wie das Datacontext Recht zu setzen, jedoch neben der Umsetzung des Property Code haben Sie diese hinter Ihrer Klasse? : INotifyPropertyChanged – Silvermind

+0

Haben Sie auch das Ausgabefenster für bestimmte Bindungsfehler überprüft? – Silvermind

+0

Sie waren richtig über INotifyPropertyChanged – Dani

Antwort

19

können Sie die Relative Eigenschaft:

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

Dies funktioniert, aber es funktioniert nur, wenn ich die INotifyPropertyChanged der Window-Klasse hinzugefügt habe - also danke @SilverMind! – Dani

+0

Warum StaticResource nicht funktioniert? – Dani

+0

@Dani, warum denkst du sollte es? StaticResource wird verwendet, um auf eine Ressource zuzugreifen, keine Eigenschaft Ihrer Ansicht ... –

Verwandte Themen