不點火ICommand的WPF按鈕命令我有一個按鈕查看如下:在視圖模型
<Button Grid.Column="2" Grid.Row="1" Content="Test" Margin="10,4"
Command="{Binding DataContext.CmdTestButtonClicked}"
CommandParameter="{Binding}" />
在視圖中的代碼隱藏,我設置的DataContext到視圖模型:
public GlobalSettings()
{
InitializeComponent();
...
DataContext = Helpers.IoCHelper.GlobalSettingsVM;
...
}
public class GlobalSettingsVM : CollectionViewModel<GlobalSettings> { ... }
public abstract class CollectionViewModel<TModel> : IInstallModuleViewModel, INotifyPropertyChanged,
INotifyDataErrorInfo where TModel : Model, new()
{
...
public ICommand CmdTestButtonClicked
{
get
{
return _testButtonClicked ??
(_testButtonClicked = new RelayCommand(TestButtonClicked));
}
}
protected virtual void TestButtonClicked(object o)
{
// I never get here
}
}
我沒有任何OTH:我的視圖模型從基類,其暴露ICommand
派生呃在我的應用程序中使用這種模式的問題,但是我所有的其他實現都在ListView
之內有Button
,所以我必須使用RelativeSource={RelativeSource AncestorType={x:Type ListView}}
。
爲什麼這個命令不會啓動?我是否也需要在這裏設置RelativeSource
?
我會嘗試改變'Command'的'Button'到'{綁定路徑= CmdTestButtonClicked}'否則你正試圖訪問'的DataContext'尚未設置的按鈕。 –