将绑定名称作为参数传递

时间:2014-06-20 12:22:51

标签: c# wpf xaml

在WPF中,是否可以将绑定的名称/路径作为参数传递?例如,说我有这个:

<TextBox Width="300" Text="{Binding Path=Age, UpdateSourceTrigger=PropertyChanged, ValidatesOnNotifyDataErrors=True, NotifyOnValidationError=True, Converter={x:Static local:AgeConverter.Instance}, ConverterParameter={Binding ???}}" />

我可以放置任何内容而不是???,以便参数值为&#34;年龄&#34;?

1 个答案:

答案 0 :(得分:0)

正如@Alessandro所提到的,ConverterParameter不是DependencyProperty所以它不支持数据绑定。

但由于ConverterParameterBinding类的常规属性,因此您可以通过编程方式设置其值。您可以在代码中执行此操作:

var myTextBox = new TextBox();
Binding myBinding = new Binding("Age");
myBinding.ConverterParameter = "set this to anything you want";
myTextBox.SetBinding(TextBlock.TextProperty, myBinding);

例如,您可以稍后在事件处理程序中更改ConverterParameter的值以响应用户输入。下次更新绑定时,它会使用新的Converter调用ConverterParameter

private void Button_Click(object sender, RoutedEventArgs e)
{
    myBinding.ConverterParameter = "a different converter parameter";
}