我想在事件的页面中显示一个弹出窗口。我在页面定义中添加了一个弹出窗口。它第一次工作正常。但是由于 Popup 不是可视树的一部分,因此下次访问该页面时会再次创建弹出窗口。我怎样才能避免这种情况?我知道的唯一选择是在代码隐藏中编写一个静态弹出窗口。但是有什么办法可以在 xaml 中做到这一点?(或可能在 VM 中)
这是我在 XAML 中的代码。
<Popup Grid.Row="2" x:Name="popup" IsOpen="{Binding VenueListOpen}">
<ScrollViewer Height="600" Margin="0,0,0,20" Background="#55000000">
<StackPanel Width="{Binding DeviceWidth}">
<ItemsControl ItemsSource="{Binding EventsList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Margin="20,0" Background="{Binding BindsDirectlyToSource=True, Converter={StaticResource EventRowBackgroundConverter}}">
<TextBlock Margin="20,5" FontSize="30" Text="Metlife stadium" TextWrapping="Wrap"/>
<TextBlock Margin="20,5" Foreground="SkyBlue" Text="www.metlifestadium.com" TextWrapping="Wrap"/>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</ScrollViewer>
</Popup>