Ich lerne catel mvvm Rahmen, und habe einige Verständnisprobleme. Versuchen, einfaches Projekt zu erstellen, sehr einfach, mit Catel-Framework. haben ein ModellWie man einfache Catel Dependency-Injektion
public class First : ModelBase
{
public String FirstValue
{
get { return GetValue<String>(FirstValueProperty); }
set { SetValue(FirstValueProperty, value); }
}
public static readonly PropertyData FirstValueProperty = RegisterProperty("FirstValue", typeof(String), "First Text");
public String SecondValue
{
get { return GetValue<String>(SecondValueProperty); }
set { SetValue(SecondValueProperty, value); }
}
public static readonly PropertyData SecondValueProperty = RegisterProperty("SecondValue", typeof(String), "Second text");
}
Dann Viewmodel
public class FirstViewModel : ViewModelBase
{
public FirstViewModel(First first)
{
Argument.IsNotNull(() => first);
First = first;
}
[Model]
public First First
{
get { return GetValue<First>(TestModelProperty); }
private set { SetValue(TestModelProperty, value); }
}
public static readonly PropertyData TestModelProperty = RegisterProperty("TestModel", typeof(First));
[ViewModelToModel("First")]
public String FirstValue
{
get { return GetValue<String>(FirstValueProperty); }
set { SetValue(FirstValueProperty, value); }
}
public static readonly PropertyData FirstValueProperty = RegisterProperty("FirstValue", typeof(String));
[ViewModelToModel("First")]
public String SecondValue
{
get { return GetValue<String>(SecondValueProperty); }
set { SetValue(SecondValueProperty, value); }
}
public static readonly PropertyData SecondValueProperty = RegisterProperty("SecondValue", typeof(String));
}
Endlich Service
public class FirstService : IFirstService
{
public First Read()
{
return new First();
}
public First Write(First first)
{
first.SecondValue = first.FirstValue;
return first;
}
}
Mit Blick
<catel:StackGrid>
<catel:StackGrid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</catel:StackGrid.RowDefinitions>
<catel:StackGrid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</catel:StackGrid.ColumnDefinitions>
<Label Content="First value" />
<TextBox Text="{Binding FirstValue}" TextAlignment="Center" Width="100"/>
<Label Content="Second value" />
<TextBox Text="{Binding FirstSecond}" TextAlignment="Center" Width="100"/>
</catel:StackGrid>
Und Fenster
012 haben habenWie sipmle catel Dependency Injection, das auf Start-Anwendung in beiden Textfeldern war Standarddaten aus der ersten Klasse. Und wie durch Drücken der "Write" -Schaltfläche kopieren Sie jemanden, der in das erste Textfeld eintritt, in das zweite Textfeld, indem Sie den Dienst verwenden. Ich werde versucht, dies anhand eines Beispiels zu tun. Erste Schritte mit der catel-Dokumentation. Aber arbeite nicht.