【发布时间】:2011-09-28 20:53:51
【问题描述】:
我在 WPF 应用程序中有以下 XAML。我想将按钮绑定到视图模型中的ICommand。出于某种原因,我无法从我的视图中看到该命令。
这是在用户控件中。
<Grid>
<Grid.DataContext>
<Binding
x:Name="SettingsData"
Path="Data" />
</Grid.DataContext>
.
.
.
<DockPanel Grid.Column="1">
<Button x:Name="SaveButton"
DockPanel.Dock="Top"
Height="25"
HorizontalAlignment="Left"
Margin="70 0 0 0"
Command="{Binding Path=SaveData}"
>Save Changes</Button>
</DockPanel>
</Grid>
这是我的 ICommand 对象 -
public ICommand SaveData
{
get
{
if (_saveData == null)
{
_saveData = new RelayCommand(
param => this.saveData(),
param => true
);
}
return _saveData ;
}
}
有人知道为什么我不能绑定到这个命令吗?
感谢您的任何想法......
【问题讨论】:
-
RelayCommand 的实现是什么,它不属于标准的 WPF 库?我猜 CanExecute 返回 false。
-
我正在使用 Josh Smith 的 MVVM 教程 - msdn.microsoft.com/en-us/magazine/dd419663.aspx 中的 relaycommand 实现。第二个参数是 CanExecute,所以我总是发送 true....
-
调试时是否可以在 VS 输出窗口中看到任何绑定错误?
-
我在输出窗口中看到了这个 - BindingExpression 路径错误:在 'object' ''List`1' 上找不到 'SaveData' 属性
-
您是否使用
PresentationTraceSources.TraceLevel=High调试了绑定以查看是否一切正常?