I'm trying to use the Flyouts from MahApps.Metro in my application. So I added this part to my MainWindow.xaml:
<controls:MetroWindow.Flyouts> <controls:FlyoutsControl ItemsSource="{Binding Flyouts}"> <controls:FlyoutsControl.ItemTemplate> <DataTemplate DataType="{x:Type viewModel:SettingsViewModel}"> <view:SettingsFlyout/> </DataTemplate> </controls:FlyoutsControl.ItemTemplate> </controls:FlyoutsControl> </controls:MetroWindow.Flyouts>
The ItemTemplate
will contain the mappings from my viewmodels to the views. Flyouts
is an ObservableCollection<IFlyoutViewModel>
and currently only contains my SettingsViewModel
.
The IFlyoutViewModel
definition:
using System.ComponentModel; namespace MyApplication.ViewModel { internal interface IFlyoutViewModel : INotifyPropertyChanged { bool Visible { get; set; } } }
And how I use the Visible
-property:
<controls:Flyout x:Class="MyApplication.View.SettingsFlyout" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:controls="http://metro.mahapps.com/winfx/xaml/controls" Header="Settings" Position="Right" IsOpen="{Binding Visible}" Width="300"> ... </controls:Flyout>
So now I set the Visible
-property of my SettingsViewModel, but the Flyout won't open. What am I doing wrong?
I just tried to assign IsOpen="true"
hardcoded but this didn't work, too. So displaying the flyout with a datatemplate seems to be the problem...