Birkaç pencereli bir WPF uygulamasına sahibim. GLOBAL inputBindings tanımlamak istiyorum.XAML - Global inputBindings nasıl?
LOCAL giriş belirtimlerini tanımlamak için, Window.InputBindings veya UserControl.InputBindings içindeki girdiyi bildiririm. i 2 farklı pencerelerde aynı bağlama varsa
<Application
....>
<Application.InputBindings>
...
</Application.InputBindings>
... Ben Uygulama sınıfı ile aynı şeyi isterdim, globaller tanımlamak için, ben iki kez kod gerekiyor. Bu D.R.Y.'nin felsefesini karşılamıyor ve sanırım daha iyi bir yol var ...
DÜZENLEME: Onun cevabında Kent Boogaart Style'u kullanmamı önerir. Ne yazık ki, onu nasıl tanımlayacağımı anlayamıyorum. Hata MC3080: erişilebilir bir ayarlama erişimcisine olmadığı için özellik kurucu 'InputBindings' ayarlanamaz Bir hata yükseltir
<Application.Resources>
<Style TargetType="Window">
<Setter Property="InputBindings">
<Setter.Value>
<Window.InputBindings>
<KeyBinding KeyGesture="Ctrl+M" Command="local:App.MsgCommand />
</Window.InputBindings>
</Setter.Value>
</Setter>
</Style>
</Application.Resources>
: Bu kodudur.
Stilim yanlış mı? Başka bir çözüm var mı?
Herhangi bir fikrin var mı? Teşekkürler!
Dikkat: Aşağıda bunun nasıl gösterir örnek kod verilmiştir. Bir stilde uygulayana kadar harika çalıştı, o zaman rastgele durumlarda çalışacak gibi görünüyordu, ancak sonra DataContext boş olurdu (böylece komutların hiçbiri bağlanamayacaktı). Bunun neden rastgele olacağına karar veremedim. – Asheh