【发布时间】:2018-09-19 05:31:23
【问题描述】:
我正在尝试将 Flyout 内容动态绑定到视图,就像我对 TabControl 所做的那样,但是当我加载视图对象时,Flyout 是空的。我尝试直接在 Controls:FlyoutsControl 下方加载视图并且它起作用了,所以我认为问题不在于视图本身。
另外,我需要在特定的 Flyout 中加载它,因此使用 Controls:FlyoutsControl 中的 ItemSource 属性对我不起作用。
MainWindow.xml
<Controls:MetroWindow.Flyouts>
<Controls:FlyoutsControl>
<Controls:Flyout
Content="{Binding FlyTest, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
IsOpen="{Binding IsOpen, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Background="#91000000"/>
</Controls:FlyoutsControl>
</Controls:MetroWindow.Flyouts>
UserControl1.xml - 要加载的视图
<controls:Flyout
x:Class="TestApp.View.UserControl1"
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"
Position="Right"
MinWidth="380" MaxWidth="380"
Header="Manufacturer Data">
<Grid>
<TextBox
Text="Test Data"
Grid.Row="0" Grid.Column="0"
VerticalAlignment="Center"
HorizontalAlignment="Right"/>
</Grid>
</controls:Flyout>
MainWindowViewModel.cs
private UserControl1 _flyTest;
public UserControl1 FlyTest
{
get { return _flyTest; }
set
{
_flyTest = value;
RaisePropertyChanged("FlyTest");
}
}
private void LoadTabs()
{
FlyTest = new UserControl1();
IsOpen = true;
}
【问题讨论】:
标签: c# mahapps.metro flyout