回答
使用AttachedCommand Behavior,這將讓你綁定的命令,WPF事件
<TabControl ...
local:CommandBehavior.Event="SelectionChanged"
local:CommandBehavior.Command="{Binding TabChangedCommand}" />
當然,如果你使用的MVVM設計模式,結合SelectedItem
或SelectedIndex
,你也可以在運行命令在PropertyChanged
事件
void MyViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
if (e.PropertyName == "SelectedIndex")
RunTabChangedLogic();
}
它可以使用下面的類一起做:
EventTrigger
類從System.Windows.Interactivity
命名空間(System.Windows.Interactivity
程序集)。從GalaSoft.MvvmLight.Command
命名空間EventToCommand
類(MVVM Light Toolkit組件,例如,GalaSoft.MvvmLight.Extras.WPF4
):
XAML:
<Window ...
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command
...>
...
<TabControl>
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<cmd:EventToCommand Command="{Binding TabSelectionChangedCommand}"
PassEventArgsToCommand="True" />
</i:EventTrigger>
</i:Interaction.Triggers>
<TabItem>...</TabItem>
<TabItem>...</TabItem>
</TabControl>
...
</Window>
在ViewModel
構造創建命令的一個實例:
TabSelectionChangedCommand = new RelayCommand<SelectionChangedEventArgs>(args =>
{
// Command action.
});
這只是來自[Blend SDK](http://www.microsoft.com/download/en/details.aspx?id=10801)的'Interactivity',你不需要任何MVVM框架來使用它。 – 2012-02-24 21:24:48
@ H.B。,對於'EventTrigger'類是正確的。但是'EventToCommand'類屬於MVVM Light Toolkit。 – 2015-05-13 11:56:41
相關問題:http://stackoverflow.com/q/5868589/490018。 – 2015-05-13 12:04:05
- 1. 使用帶有視圖的命令對象鏈命令
- 2. 帶-credentials的調用命令
- 3. 帶有使用命令行的Jar文件的Java IO
- 4. 在沒有命令行的情況下使用帶IntelliJ的SVN
- 5. 帶有外部.jar的Java命令行
- 6. 帶有多個命令的htaccess?
- 7. 傳遞帶有textChanged的命令條款
- 8. && vs&帶有bash中的測試命令
- 9. 帶有參數的sql cmd命令
- 10. 帶多個命令
- 11. 使用split命令使用slice命令?
- 12. 使用dock命令使用aws命令
- 13. 帶NULL的UPDATE命令
- 14. 帶動態命令的MVVM
- 15. 從命令行/蝙蝠帶有參數
- 16. WPF如何執行當前活動tabitem的命令?
- 17. 從ContextMenu命令查找TabItem的正確方法
- 18. TabControl將ItemsSource綁定到帶有現有TabItem的列表
- 19. 帶有類似選項的子命令的Java命令行解析器
- 20. 使用命令
- 21. 使用沒有命令行的libav?
- 22. 從python調用帶有可變參數的linux命令
- 23. 帶有後臺進程的命令行界面應用程序
- 24. 運行帶有用戶輸入的外部命令C
- 25. 字織帶命令截取
- 26. 如何將TabItem GotFocus綁定到ViewModel命令
- 27. 使用'wget'命令安裝MongoDB命令
- 28. 使用sql命令不止一次使用不同的命令
- 29. 使用帶變量的NETSH命令通過批處理文件
- 30. 在Stata中使用帶bootstrap命令的程序
您也可以綁定到IsSelected並處理對該屬性的更改你的ViewModel。 – Will 2012-02-24 19:08:15