【问题标题】:Mahapps.Flyouts - Content BindingMahapps.Flyouts - 内容绑定
【发布时间】: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


    【解决方案1】:

    我通过将视图对象类型从 Flyout 更改为 UserControl

    解决了这个问题

    【讨论】:

      猜你喜欢
      • 2012-09-21
      • 1970-01-01
      • 2014-02-16
      • 2011-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-22
      相关资源
      最近更新 更多