Ich habe eine Steuer individuelle Benutzer mit dem Namen Field:Silverlight Individuelle User Controls und Dependancy Eigenschaft Ausgabe
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Name="LblName"/>
<TextBox Grid.Row="0" Grid.Column="1" HorizontalContentAlignment="Left" Name="TxtValue"/>
</Grid>
In der CS-Datei belichten ich die unten Eigenschaft, setzt einfach die „.text“ Wert der Textbox.
public static readonly DependencyProperty ValueProperty = DependencyProperty.Register(
"Value",
typeof(string),
typeof(Field),
new PropertyMetadata(
default(string),
(source, args) => (source as Field).TxtValue.Text = (string)args.NewValue
)
);
[Category("Custom")]
public string Value
{
get
{
return (string)this.GetValue(ValueProperty);
}
set
{
this.SetValue(ValueProperty, value);
}
}
Erste Frage. Ist dies die korrekte Art und Weise, in der wir die Abhängigkeitseigenschaften für untergeordnete Benutzersteuerelemente propagieren, die Sicherung über das übergeordnete Benutzersteuerelement, so dass es von der Seite xaml aus gesetzt werden kann? Ich habe mich im Internet umgesehen, da es nicht viel gibt, wenn man bedenkt, dass das beim Schreiben von benutzerdefinierten Steuerelementen ziemlich primitiv ist.
Geben Sie Details um das größere Bild, ich habe Kundendetailseite, einige der Steuerelemente sind an das Kundenobjekt gebunden, das in einer beobachtbaren Sammlung enthalten ist. Wenn ich den Wert des Textfelds (das in der Feldsteuerung enthalten ist) auf der Seite von "xxxx" zu "yyyy" ändere, bekomme ich immer "xxxx" zurück. Es scheint so, als würde irgendwas um den Getter herum schief gehen?