Metro / WinRT / Windows 8是否可以从后面的代码中清除元素的绑定?

时间:2012-10-18 17:56:40

标签: c# windows-8 windows-runtime microsoft-metro

我有一组需要在页面上填充一组TextBox的项目。每次用户单击另一个项目时,我想从最后一个项目中删除旧绑定,并为当前项目设置新绑定。如果我不这样做,则抛出WinRT The object is immutable异常。

此代码在选择第一个项目时有效,但在下一个项目选择时抛出异常。

titleBinding.Source = selectedItem;
TitleBox.SetBinding(TextBox.ValueProperty, _titleBinding);

2 个答案:

答案 0 :(得分:5)

您可以尝试调用ClearValue。

TitleBox.ClearValue(TextBox.ValueProperty);

答案 1 :(得分:1)

我的解决方案是每次加载新项目时创建全新的绑定对象,然后调用TitleBox.SetBinding(TextBox.ValueProperty, newBindingObject);

显然,在设置了源并将其绑定到对象后,您无法取消绑定Binding对象。