BindingGroupName 作用范围还是和Element Name作用域一致的,看这篇文档:http://msdn.microsoft.com/en-us/library/ms746659.aspx
由于 BindingBase。BindingGroupName只是个一般的属性,不是依赖属性,不能绑定,而且只接受字符串,所以我们无法在他上面做手脚。只能让我们的 BindingGroup 名字在你的控件范围里面再次注册一下名字:
例如你的Window中有个BindingGroup (注意,只能用BindingGroup Name属性命名,而不是x:Name):
<StackPanel x:Name="stackpanel">
<StackPanel.BindingGroup>
<BindingGroup Name="bindingGroup"/>
</StackPanel.BindingGroup>
<local:UserControl1 x:Name="control"/>
</StackPanel>
然后我们在后面注册这个名字到UserCotnrol范围里:
control.RegisterName("bindingGroup", stackpanel.BindingGroup);
在UserControl里面就可以使用了:
<StackPanel>
<TextBox x:Name="textbox">
<TextBox.Text>
<Binding Path="." BindingGroupName="bindingGroup">
</Binding>
</TextBox.Text>
</TextBox>
<Button Content="click" Click="Button_Click"/>
</StackPanel>
Sincerely,
Bob Bao [MSFT]
MSDN Community Support | Feedback to us
