Ich versuche, die TextBox die Eigenschaft stringBody der CurrentDialog -Eigenschaft des Fensters anzeigen zu lassen. Hier ist der XAML-Teil:Binden von TextBox an Objekt WPF
<TextBox x:Name="ComposerBox" Height="90.302" Margin="311,0,141.355,10"
...
Text="{Binding Body}"
ScrollViewer.CanContentScroll="True" SpellCheck.IsEnabled="True"
VerticalAlignment="Bottom">
Hier ist eine Zeichenfolge aus dem Fenster Konstruktor:
MessagingBox.DataContext = CurrentDialog;
Ich habe auch versucht, Datacontext dies ohne Ergebnis eingestellt werden. Hier ist, wie CurrentDialog definiert:
private MessageDialog CurrentDialog { get; set; }
Hier ist die MessageDialog Klassendefinition:
[Serializable][DataContract]
public class MessageDialog
{
public string Name { get; private set; }
public UserData User { get; private set; }
private List<Message> Dialog = new List<Message>();
public string Body { get; private set; }
public MessageDialog(UserData data)
{
Name = data.Username;
User = data;
Body = "";
}
public void Add(Message msg)
{
Dialog.Add(msg);
Body += $"{msg.From}: {msg.Body} \n\n";
}
}
}
Die Bindung überhaupt nicht funktioniert. Ich möchte auch, dass es in eine Richtung geht.
Ohne ein gutes [mcve], das das Problem zuverlässig reproduziert, ist es unmöglich zu wissen, warum der Code nicht funktioniert. Die vorgeschlagene Antwort ist jedoch eine gute Schätzung. Wenn Sie erwarten, dass die Eigenschaft 'Text' aktualisiert wird, wenn die Quelleigenschaft' body' geändert wird, müssen Sie WPF eine Möglichkeit geben, um zu wissen, wann dies tatsächlich geschieht. 'INotifyPropertyChanged' ist der übliche Weg, dies zu tun. –