如何在WPF中从ViewModel设置Fluent.Ribbon StartScreen的IsOpen属性?

问题描述 投票:0回答:1

我正在使用

Fluent.Ribbon
库开发 WPF 应用程序,并且在从视图模型中设置
IsOpen
控件的
StartScreen
属性时遇到问题。 我有一个
MainViewModel
设置为我的
DataContext
MainWindow
,并且我希望能够在视图模型中控制
StartScreen
的可见性。 我的 XAML 如下所示:

<Fluent:Ribbon Grid.Row="0" FlowDirection="RightToLeft">
    <!-- Start Screen -->
    <Fluent:Ribbon.StartScreen IsOpen="{Binding IsStartScreenOpen}" />
    <!-- Other ribbon content -->
</Fluent:Ribbon>

这是我的

MainViewModel
中的相关属性:

public class MainViewModel : INotifyPropertyChanged
{
    private bool _isStartScreenOpen;

    public bool IsStartScreenOpen
    {
        get { return _isStartScreenOpen; }
        set
        {
            if (_isStartScreenOpen != value)
            {
                _isStartScreenOpen = value;
                OnPropertyChanged(nameof(IsStartScreenOpen));
            }
        }
    }

    
}

但是,在我的视图模型中设置

IsStartScreenOpen
属性似乎不会更新
StartScreen
控件的可见性。

我错过了什么?如何从我的视图模型中正确设置

IsOpen
StartScreen
属性?

任何帮助或建议将不胜感激。谢谢!

c# wpf mvvm ribboncontrolslibrary
1个回答
0
投票

您的 XAML 标记无效,无法编译。

您应该将该属性绑定到实际的

StartScreen
元素上,例如:

<Fluent:Ribbon Grid.Row="0" FlowDirection="RightToLeft">
    <Fluent:Ribbon.StartScreen>
        <Fluent:StartScreen IsOpen="{Binding IsStartScreenOpen}">
            ...
        </Fluent:StartScreen>
    </Fluent:Ribbon.StartScreen>
</Fluent:Ribbon>
© www.soinside.com 2019 - 2024. All rights reserved.