Dobrý den, Měl bych dotaz ohledně DataBindingu ve WPF. Mám objekt s Int32 proměnnou ID.
public class clsActor
implements InotifiPropertyChanged
public shared readonly IdProperty as string = "ID"
private _id as integer
public property ID as integer
get
return me._id
end get
set (value as integer)
me._id = value
raiseEvent NotifiPropertychanged(me, new propertyChangedEventArgs(clsActor.IdProperty)
end set
end class
Protože ve WPF není NumericUpAndDown tak jsem si ho vytvořil. Má vlastnost Value typu Double. Udělal jsem mu statickou hodnotu:
Public Shared ReadOnly ValueDependencyProperty As DependencyProperty = DependencyProperty.Register("Value", GetType(Double), GetType(NumericUpAndDown), New UIPropertyMetadata())
Ve formláři bych pak chtěl:
Me.numId.DataContext = Me.CurrentActor
Me.numId.SetBinding(NumericUpAndDown.ValueDependencyProperty, clsActor.IdProperty)
Toto ovšem nefunguje, a ani si nejsem jistý zdali to takhle má být. Pro příklad pokud stejné zadání upravím na textbox:
Me.textbox1.DataContext = Me.CurrentActor
Me.textbox1.SetBinding(TextBox.TextProperty, clsActor.IdProperty)
Tak to funguje, chyba bude někde v usercontrolu(NumericUpAndDown) asi v dependenci property. Věděl by někdo jak to upravit, aby binding fungoval ? vlastnost objektu Id je integer a Vlastnost userControlu value je double, ale pokud ji udělám také integer, tak to stejně nereaguje. A radši bych ji měl jako ve winforms double. Pro širší použití.
|