2017-03-26 6 views
0

Ich scheine zu kämpfen Antwort auf meine Frage zu finden (ich habe viele von ihnen lesen, aber nicht ein einziges arbeitete für mich). Ich versuche, einige Datetime in MainWindow.xaml.cs in TextBlock- befindet sich auf dem Hauptfenster gespeichert anzuzeigen. Ich war mit ihm spielen und so stelle ich einen Testcode auf:C# WPF - Bindungseigenschaft von Mainwindow in Mainwindow TextBlock-

MainWindow.xaml.cs:

public partial class MainWindow : Window 
{ 
    public DateTime displayTime; 

    public MainWindow() 
    { 
     displayTime = new DateTime(1,1,1,0,1,21,306); 
     InitializeComponent(); 
    } 
} 

MainWindow.xaml:

<Window x:Class="Project1.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:local="clr-namespace:Project1" 
    mc:Ignorable="d" 
    Title="Main Window" MinHeight="450" Height="450" MinWidth="650" Width="650"> 

<TextBlock Text="{Binding Path=displayTime, StringFormat='{}{0:h \: m \: ss\.fff}', Mode=OneWay}" /> 

Antwort

0

gibt es ein paar Dinge zu beheben.

Das erste, was displayTime nicht Eigenschaft ist ist es ein Feld. Fügen Sie get/set hinzu, um die Eigenschaft für das Binden zugänglich zu machen.

public DateTime displayTime { get; set; } 

die zweite Sache ist Binding Path=displayTime Bindung erwarten, dass displayTime eine Eigenschaft von Datacontext ist.

versuchen Fenster Datacontext selbst gesetzt:

InitializeComponent(); 
DataContext = this; 

oder relative Quelle verwendet bei der Bindung:

<TextBlock Text="{Binding Path=displayTime, 
        StringFormat='{}{0:h \: m \: ss\.fff}', 
        Mode=OneWay, 
        RelativeSource={RelativeSource AncestorType=Window}}"/> 

es ist in Ordnung Eigenschaft von Code-behind in einem smal Blick zu binden. In einer größeren Ansicht Markup und Code kann ziemlich kompliziert und ist es ratsam, ein separates Ansicht Modell für diese Ansicht (lesen Sie über MVVM) zu erstellen.

+0

Natürlich! Ich fühle mich jetzt so dumm ...: D: D –

+0

@ Krepsy3, wenn die Bindung gibt Probleme Prüfung Visual Studio Ausgabefenster, wenn die App ausgeführt wird. VS-Berichte zur Laufzeit, wenn Bindungen mit Fehlern geschrieben werden (falschem Weg, Quelle, Typ usw.) – ASh

+0

thx. Im stdio oder stderr? –

Verwandte Themen