有没有在WinRT中模拟Binding.FallbackValue行为的变通方法?
发布于 2013-03-29 18:30:51
可以使用附加的属性来完成此操作。我发现WinRT的许多限制都可以用它们来修复。
我没有代码,但是下面的代码如何:
<TextBox local:fallbackProperty="Text" local:fallbackPropertyValue="<NO BINDING SET"
Text="{Binding random}" />现在,在附加的属性处理程序中,通过反射签出fallbackProperty并订阅属性更改:
listener = DependencyPropertyChangedListener.Create(this.myTextBox,"Text");listener.ValueChanged += listener_ValueChanged;
如果你收到0/null,那么你可以从Text属性中调出绑定。并将其替换为fallbackPropertyValue。你仍然需要跟踪真正的绑定,并确保它在时机成熟时被交换回来。
此解决方案的限制是每个UI元素只能使用一个fallbackValue。但这可以很容易地扩展到"LIST of fallbackValues“。仅仅是语法就不再那么方便了。
遗憾的是,开发人员需要重新发明轮子,而WPF几乎已经做好了所有的事情,并且需要最少的黑客。
https://stackoverflow.com/questions/14379484
复制相似问题