【发布时间】:2011-08-26 18:54:45
【问题描述】:
当我创建一个新的 TabItem 时,我会同时创建一个新的 CheckBox。
我想将 TabItem 的可见性绑定到 CheckBox,但无法设置绑定。
CheckBox cb = new CheckBox();
cb.Content = tabItemName;
cb.Name = tabItemName;
var visibilityBinding = new Binding("IsChecked");
visibilityBinding.Mode = BindingMode.TwoWay;
visibilityBinding.ElementName = cb.Name; // this could just be a string literal
visibilityBinding.Converter = new VisibilityConverter();
m.TabItem.SetBinding(TabItem.VisibilityProperty, visibilityBinding);
cb.IsChecked = true;
在运行时出现此错误:
System.Windows.Data 错误:BindingExpression 路径错误:在“Telerik.Windows.Controls.RadTabItem”“Telerik.Windows.Controls.RadTabItem”(HashCode=66442352)上找不到“IsChecked”属性。 BindingExpression: Path='IsChecked' DataItem='Telerik.Windows.Controls.RadTabItem' (HashCode=66442352);目标元素是'Telerik.Windows.Controls.RadTabItem'(名称='Central ...');目标属性是“可见性”(类型“System.Windows.Visibility”)..
我做错了什么?我认为 Binding ctor 的参数是源对象(CheckBox)上的属性,该属性绑定到 SetBinding() 调用中命名的属性。
感谢您的建议...
更新:
我加了
可见性绑定.Source = cb;
并在运行时收到此错误:
使用 Binding.Source 时无法设置 Binding.RelativeSource
【问题讨论】:
-
为什么不在 XAML 中做呢?
-
因为用户可以在运行时创建额外的 TabItems。