【发布时间】:2011-06-01 14:24:06
【问题描述】:
我已经看到这个问题被问了几次,但我还没有看到能够找到我的场景的完整答案。
在我的项目中,我有一个作为列表框项创建的用户控件。在这个用户控件中,我有一个按钮
<Button x:Name="DetailButton"
Grid.Column="1"
Width="107"
Height="23"
Margin="196,94,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Click="MoreDetail_Click"
Command="{Binding GetCFSDetailCommand}"
Content="View Details [+]" />
按钮有一个特定于视图的单击事件,这基本上会根据可见性状态展开或折叠网格行。我在这里使用了一个事件,因为它是特定于 ui 的。这个按钮还有一个在虚拟机中调用的命令。
虚拟机代码
public class SearchViewModel : INotifyPropertyChanged
{
private DelegateCommand _getCFSDetailCommand;
public DelegateCommand GetCFSDetailCommand
{
get
{
if (this._getCFSDetailCommand == null)
this._getCFSDetailCommand = new DelegateCommand(GetCFSDetailCommandExecute, CanGetCFSDetailCommandExecute);
return this._getCFSDetailCommand;
}
}
private void GetCFSDetailCommandExecute(object parameter)
{
//bind collection to model call here
}
我遇到的问题是按钮上的命令“丢失”或在列表框项内时从未调用过我将视图绑定到 vm,如果我将此命令放在视图中的任何其他按钮上叫。谁能帮我理解如何在列表框项中调用绑定到按钮的命令?
提前谢谢你
【问题讨论】:
标签: silverlight mvvm listboxitem icommand