Codebehind Binding
Ein einfaches Snippet für das Codebehind Binding.
SetControlBinding(_config.Data, GetPropertyName<ConfigData,
string>(f => f.Username), txtUser);
private void SetControlBinding(object source,
string propertyPath,
Control control)
{
Binding binding = new Binding();
binding.Source = source;
binding.Path = new PropertyPath(propertyPath);
binding.Mode = BindingMode.TwoWay;
if (control is TextBox)
{
control.SetBinding(TextBox.TextProperty, binding);
}
else if (control is PasswordBox)
{
control.SetBinding(PasswordBox.PasswordCharProperty, binding);
}
else if (control is CheckBox)
{
control.SetBinding(CheckBox.IsCheckedProperty, binding);
}
}
public static string GetPropertyName<P, T>(Expression<Func<P, T>> expression)
{
MemberExpression memberExpression =
(MemberExpression)expression.Body;