2010-08-19 96 views
0

我在Expasnders控制面板内部有一个文本框,我试图从扩展器外部绑定,但这不是真的可能,我在扩展器内部有另一个文本框,如下所示: 如何绑定到控制扩展器内部的控制

和这个标记在扩展器外部的确切副本,当扩展器内部的文本框更新它的文本proeprty时,txtTitle被改变,外面的一个不这样如何从扩展器外部绑定到txtTitle?

我会尝试用一些示例xaml(听起来有趣的发音)来说明它。

<TextBox Text="{Binding ElementName=ExpandertxtBox, Path=Text}" /> 

<toolkit:Expander> 
<toolkit:Expander.ContentTemplate> 
<TextBox Name="ExpandertxtBox" /> 
</toolkit:Expander.ContentTemplate> 
</toolkit:Expander> 

的问题是,结合不会工作,因为ExpandertxtBox是contentemplate里面,我试图从外部约束,所以我怎么能访问它,什么是正确的bindingpath?

回答

0

我结束了创建这个方法来处理我的问题

private void SetFilterBinding(object ctrl, object value, FilterOperator fo, string ctrlproperty, string dbproperty) 
{ 
    var fd = new FilterDescriptor(dbproperty, fo, value); 
    BindingOperations.SetBinding(fd, FilterDescriptor.ValueProperty, new Binding{ Path = new PropertyPath(ctrlproperty), Source = ctrl}); 
    nodeDomainDataSource.FilterDescriptors.Add(fd); 
}