0
我有幾個視圖,通過將可見性綁定到ViewModel中的布爾屬性,在主窗口上顯示爲疊加層。Popup vs. Visibility toggle
主窗口看起來是這樣的:
<Grid>
<vw:MainContentView/>
<!-- Overlays (normally invisible) -->
<vw:NotificationsView/>
</Grid>
的「NotificationsView」的風格,看起來像這樣:
<Style x:Key="NotificationsView" TargetType="UserControl">
<!-- snipped -->
<Style.Triggers>
<DataTrigger Binding="{Binding IsNotificationsViewVisible}" Value="True">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
<DataTrigger Binding="{Binding IsNotificationsViewVisible}" Value="False">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
我不知道這是否會是最好使用一個彈出將'IsOpen'屬性綁定到ViewModel中的'IsNotificationViewVisible'屬性,而不是直接切換視圖的可見性:
<Grid>
<vw:MainContentView />
<!-- Popups (normally invisible) -->
<Popup IsOpen="{Binding IsNotificationsViewVisible}">
<vw:NotificationItemsView/>
</Popup>
</Grid>
是否有任何理由我想使用其中一種方法(內存使用或其他方式)?這兩種方法似乎都能正常工作 - Popup帶有一對免費動畫,但看起來是一樣的。
夠公平 - 我沒有注意到彈出窗口不會隨主窗口移動!這種行爲非常重要 - 我將使用可見性方法。謝謝! – user158485