2014-06-20 107 views
-1

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

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

有什么我可以把代替???,使得参数值是“年龄”?

+2

可能重复[装订ConverterParameter(http://stackoverflow.com/questions/15309008/binding-converterparameter) –

+0

是什么有什么关系呢?阅读问题。 – Gigi

+1

可能短语“ConverterParameter属性不是依赖项属性,因此无法绑定”。告诉你关于它的一些事情? –

回答

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"; 
}