我有一個窗口,其中有3個文本框在網格中 - 這是我的視圖 - 我有保存按鈕來添加一個新用戶到我的用戶列表與文本框中的數據。 我想在我的viewmodel類上使用中繼命令來做到這一點,但我對如何製作綁定感到困惑。我希望這很清楚。任何想法或例子都會有所幫助。 在此先感謝。綁定一個保存命令WPF
回答
你應該有一個視圖模型類似如下:
class UserViewModel
{
public String Name { get; set; }
public String Password { get; set; }
public String Email { get; set; }
public RelayCommand AddUserCommand { get; set; }
public UserViewModel()
{
AddUserCommand = new RelayCommand(AddUser);
}
void AddUser(object parameter)
{
// Code to add user here.
}
}
而且你可以使用它像以下:
<StackPanel>
<TextBox Text="{Binding Name}"></TextBox>
<TextBox Text="{Binding Password}"></TextBox>
<TextBox Text="{Binding Email}"></TextBox>
<Button Command="{Binding AddUserCommand}">Add</Button>
</StackPanel>
爲了使這項工作,把按照你的用戶控件代碼/控制/窗戶的構造函數:
DataContext = new UserViewModel();
我推測你讀了Josh Smith的文章: WPF Apps With The Model-View-ViewModel Design Pattern。如果你沒有,那麼先閱讀它,然後下載代碼,因爲示例與你的問題非常相似。
是的,我讀了它,它讓我感到困惑,比幫助我... – cemregoksu 2010-08-04 10:22:15
我明白你:)。到過那裏。三讀和學習代碼後,我得到了部分內容。需要時間來捕捉正在發生的事情。至少我需要。 – zendar 2010-08-04 10:57:39
您是否創建了ViewModel的實例並將此實例放入您的視圖或stackpanel的DataContext中?
例如:
UserViewModel viewModel = new UserViewModel(); UserWindow view = new UserWindow(); view.DataContext = viewModel; view.Show();
上有視圖和視圖模型耦合的幾個選項:
- 創建視圖和視圖模型和視圖模型設置爲DataContext屬性(代碼以上)
- 在視圖的構造函數中創建ViewModel並使用它填充DataContext屬性
- 在typ視圖中創建資源然後在XAML中填充DataContext屬性
我更喜歡第一個選項,因爲您可以在運行時隨心所欲地組合視圖和視圖模型。
希望這是一個有用的答案。
- 1. WPF命令綁定
- 2. WPF綁定命令
- 3. 在WPF中綁定驗證和保存命令
- 4. WPF圖像命令綁定
- 5. WPF:綁定和命令
- 6. MVVM WPF - Viewmodel命令綁定
- 7. WPF命令綁定破壞
- 8. 命令綁定與WPF
- 9. WPF RibbonApplicationMenuItem命令綁定
- 10. 在一個按鈕中綁定兩個命令WPF/MVVM
- 11. wpf中的自定義命令綁定
- 12. WPF MVVM - 命令綁定在一個ItemsControl內
- 13. 如何將命令綁定到一個菜單項在C#WPF
- 14. 如何將一個命令綁定到MenuItem(WPF)?
- 15. 在DataTemplate中的WPF命令綁定
- 16. WPF:將ContextMenu綁定到MVVM命令
- 17. Wpf屬性綁定與命令
- 18. 將ViewModel命令綁定到WPF DataGrid
- 19. WPF:綁定到來自ControlTemplate的命令
- 20. WPF MVVM:綁定命令到事件
- 21. WPF命令綁定到祖先屬性
- 22. 將命令綁定到WPF中的ComboBoxItem
- 23. WPF中的事件和命令綁定
- 24. WPF usercontrol命令綁定到窗口viewmodel
- 25. 命令綁定不工作WPF
- 26. WPF命令綁定:CanExecute參數
- 27. WPF CustomControl命令和數據綁定
- 28. WPF命令綁定到MVVM的DataItemTemplate
- 29. Datagrid與棱鏡綁定命令WPF
- 30. C#/ WPF:鍵綁定不觸發命令
這些代碼是否足以提供視圖和視圖模型之間的關係?它仍然不起作用... – cemregoksu 2010-08-04 10:10:08
您必須創建ViewModel的對象並將其分配給窗口的DataContext – Zied 2010-08-04 11:37:43
感謝Zied爲此添加了這一點。我已經更新了代碼。 – decyclone 2010-08-04 14:18:13