Как OneWayBind к материалуDesign: ButtonProgressAssist.IsIndicatorVisible DependencyProperty - PullRequest
1 голос
/ 26 февраля 2020

У меня есть кнопка входа в систему, к которой я хотел бы применить неопределенный просмотр прогресса во время процесса входа в систему.

Вот XAML для кнопки:

<Button x:Name="LoginButton" Style="{StaticResource MaterialDesignRaisedButton}" 
        materialDesign:ButtonProgressAssist.Value="-1"
        materialDesign:ButtonProgressAssist.IsIndicatorVisible="false"
        materialDesign:ButtonProgressAssist.IsIndeterminate="true">
    LOGIN
</Button>

Итак Я полагаю, что могу просто связать логическое свойство в моей модели представления с materialDesign:ButtonProgressAssist.IsIndicatorVisible. Я использую код для привязки, например, так:

public partial class Connection : ReactiveUserControl<ConnectionViewModel>
{
    public Connection()
    {
        InitializeComponent();
        ViewModel = ViewModelLocator.ConnectionViewModel;

        this.WhenActivated(d =>
        {
            this.BindCommand(ViewModel, vm => vm.LoginCommand, v => v.LoginButton).DisposeWith(d);
            // How do I bind to this property using OneWayBind?
            this.OneWayBind(ViewModel, vm => vm.LoggingIn, v => v.LoginButton.ButtonProgressAssist.IsIndicatorVisible).DisposeWith(d);
        });
    }
}

Intellisense не улавливает свойство зависимости дизайна материала. Как мне ссылаться на него?

В случае, если это имеет значение, проект WPF нацелен. NET Core 3.1

1 Ответ

1 голос
/ 27 февраля 2020

Я не думаю, что метод OneWayBind поддерживает вложенные свойства, но вы можете связать его с разметкой XAML:

materialDesign:ButtonProgressAssist.IsIndicatorVisible="{Binding LoggingIn, Mode=OneWay}"

Вы, конечно, можете сделать OneWayBind для других свойств так же, как до этого.

...