在Windows 8中替换基于可视状态的XAML绑定

在Windows 8中替换基于可视状态的XAML绑定,xaml,binding,windows-8,windows-runtime,Xaml,Binding,Windows 8,Windows Runtime,我使用VisualStateManager元素根据当前的视觉状态重新定位页面上的一些XAML元素。 我的问题是,我使用的gridview在窗口被捕捉时必须变成listview(因为剩下的水平空间很小)。我将一些其他元素绑定到gridview的selectedItem属性。我的第一种方法是创建一个listview,并根据视觉状态显示/隐藏它。我还需要更新其他元素的绑定(从gridView.selectedItem到listView.selectedItem),这在visualstatemanage

我使用VisualStateManager元素根据当前的视觉状态重新定位页面上的一些XAML元素。 我的问题是,我使用的gridview在窗口被捕捉时必须变成listview(因为剩下的水平空间很小)。我将一些其他元素绑定到gridview的selectedItem属性。我的第一种方法是创建一个listview,并根据视觉状态显示/隐藏它。我还需要更新其他元素的绑定(从gridView.selectedItem到listView.selectedItem),这在visualstatemanager中显然是不可能的。另一种可能是更改代码背后的绑定。
是否有其他解决方案(最好是XAML)?

我认为普遍接受的答案是,每个视觉状态应该有一块XAML。您可以折叠当前未使用的文件。如果要执行需要动态绑定数或类似的操作,则只能手动进行更改或创建绑定。在本例中,您有一组到一组已知UI元素的固定绑定,因此只需在xaml中设置所有绑定