Ich habe eine Klasse, die eine String-Eigenschaft namens Text enthält.Klasseneigenschaften an UserControl in MVVM binden
public class Time
{
private string _text;
public string Text
{
get { return _text; }
set { _text = value; }
}
}
Ich habe auch eine benutzerdefinierte UserControl, die diese Klasse enthält.
public partial class MyUserControl : UserControl, INotifyPropertyChanged
{
<...>
private Time _myTime;
public Time MyTime
{
get { return _myTime; }
set { _myTime= value; NotifyPropertyChanged(); }
}
}
Von meinem Viewmodel, möchte ich die oben Usercontrol schaffen und eine Time-Klasse und alle seine Eigenschaften zuordnen: für das Benutzersteuerelement enthält diese TextBox
void SomeMethod()
{
Time TestTime = new Time();
TestTime.Text = "Hello world";
MyUserControl control = new MyUserControl();
control.MyTime = TestTime;
controlViewer = new System.Collections.ObjectModel.ObservableCollection<Control>();
controlViewer.Add(control);
// on my main window, I have an ItemsControl with
// ItemsSource="{Binding controlViewer}".
}
Die XAML:
<TextBox Text="{Binding MyTime.Text}"/>
Ich bin dann in der Lage, die control.MyTime.Text -Eigenschaft programmgesteuert aufzurufen und den "Hallo Welt" -Wert gut zu bekommen - aber ich kann es nicht auf dem neu erstellten MyUserControl anzeigen lassen Textfeld.
Das tat es - danke! – Fish