MahApps MetroWindow Самое верхнее свойство Проблема с привязкой - PullRequest
0 голосов
/ 13 февраля 2020

Я использую MahApps для своего приложения WPF, и когда используется окно метро, ​​свойство TopMost не может связываться. Если я установлю его как значение stati c, оно будет работать.

<Controls:MetroWindow x:Class="SabreContractSearch.Views.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:prism="http://prismlibrary.com/"
        xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
        xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
        prism:ViewModelLocator.AutoWireViewModel="True"
        Topmost= "{Binding Pin}" Title="{Binding Title}" Height="350" Width="525" Name="FrmMainWindow" >

Pin - это логическое свойство здесь.

Если я удаляю окно метро и использую обычный тег окна для WPF, это работает. Что-нибудь дополнительно нужно добавить, чтобы окно метро работало?

1 Ответ

0 голосов
/ 14 февраля 2020

Это была ошибка в ControlzEx v4.2.1. Существует хак Topmost, который не устанавливает свойство Topmost окна с помощью SetCurrentValue.

WPF0041 Установка свойств изменяемой зависимости с помощью SetCurrentValue.

Установка значения свойств зависимости с помощью средства доступа CLR вызывает SetValue (свойство, значение). Это убьет односторонние привязки на собственности. Это правило, вероятно, наиболее актуально в коде библиотеки, где случайная установка значения может быть трудно отследить ошибку.

...