2016-12-25 34 views
0

是否可以在Catel中註冊僅在特定控件具有焦點時纔會觸發的應用程序命令?Catel僅適用於集中控制的應用程序命令

例如,在Catel.Examples.WPF.Commanding例如, (https://github.com/Catel/Catel.Examples/tree/master/src/NET/Catel.Examples.WPF.Commanding) 如果我TextBox取代TextBlockApplicationCOmmands.CutApplicationCommands.Paste添加RibbonButton情況下,它們的應用命令只能在集中TextBox

是否可以使刷新命令僅在DocumentView上執行,它有一個焦點?

另外,是否有使用RoutedUICommands與Catel及其ICommandManager的例子或指導?

感謝, 湯姆

回答

1

,如果您註冊一個空的應用範圍的命令這是可能的。然後,您可以在初始化視圖模型時添加一個動作/子命令,並在vm再次關閉時取消註冊。這樣,將針對所有「打開」實例調用該命令(並且只有在有一個或多個子命令可用時纔可執行)。

+0

嗯,我不明白...在命令示例中有4個DocumentViewViewModel同時被初始化和激活,所以它們都執行Refresh命令。我只想刷新其中一個,焦點(我用TextBox代替TextBlock,這更接近我的實際問題)。我可以使它與Routed命令和System.Windows.Input.CommandManager而不是IComandManager一起工作,但如果可能的話,我寧願不將它們混合。我查看了Catel,LogViewer,Orchestra的一個類似的例子,但是找不到任何東西。你可以在某處發佈一個修改過的指揮例子嗎?謝謝。 – Tom

+0

然後,您需要在SelectedTabChanged上手動取消註冊命令。 –

相關問題