我有一个SplitView
<SplitView Name="splitView"
DisplayMode="{Binding SplitViewDisplayMode}"
IsPaneOpen="{Binding SplitViewIsPaneOpen}"
OpenPaneLength="200" CompactPaneLength="51"/>我还使用VisualStateManager根据应用程序窗口大小调整SplitView:(示例)
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="500"></AdaptiveTrigger>
</VisualState.StateTriggers>到目前为止,一切都正常工作,但是当上面的触发器和下面的状态被激活时,我遇到了一个意外的结果。
<VisualState.Setters>
<Setter Value="True" Target="splitView.IsPaneOpen"></Setter>
<Setter Value="Overlay" Target="splitView.DisplayMode"></Setter>
</VisualState.Setters>我似乎无法找到一种方法来检测该事件,以便我的ViewModel知道何时丢失了SplitView窗格焦点。现在,正如设计的覆盖显示一样,直到用户单击视图(按照设计的那样),但我想知道,何时折叠SplitView覆盖,以便我可以向HamburgerMenu中添加附加的绑定事件。
据我所知,VisualStateManager似乎不更新/更改绑定
DisplayMode="{Binding SplitViewDisplayMode}"对于如何发现覆盖是否消失/关闭,有什么想法吗?
我唯一能想到的就是创建发现窗口大小的方法,然后确定SplitView是否应该是SplitView。这是可行的,但会导致许多潜在的组合。
关于如何检测或让SplitView告诉我当用户单击SplitView外部的控件时Overlay是否为Collapsed的想法或想法
发布于 2017-01-22 08:59:31
要使绑定工作,您必须将它们指定为双向绑定。否则,他们只会用代码中的更改来更新UI,而不是反过来:
<SplitView Name="splitView"
DisplayMode="{Binding SplitViewDisplayMode, Mode=TwoWay}"
IsPaneOpen="{Binding SplitViewIsPaneOpen, Mode=TwoWay}"
OpenPaneLength="200" CompactPaneLength="51"/>现在,当状态发生变化时,应该正确更新属性。
https://stackoverflow.com/questions/41786442
复制相似问题