我有一个使用 XAML 的 Windows 商店应用程序,其中我有一个类型的绑定:
DelegateCommand<DomainObject>
我正在尝试绑定 DomainObject 的列表,如下所示。注意项目模板中的按钮,触发 StartCommand:
<ItemsControl
x:Name="MyList"
ItemsSource="{Binding Path=Items}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Style="{StaticResource Para}">
<Image>
<Image.Source>
<BitmapImage UriSource="{Binding Path=Image}" />
</Image.Source>
</Image>
<TextBlock Text="{Binding Path=Name}" Width="300" />
<Button Content="Start"
Command="{Binding Path=StartCommand}"
CommandParameter="{Binding}"/>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
在视图模型中,我有以下内容:
public DelegateCommand<DomainObject> StartCommand
{
get { return _startCommand; }
set
{
_startCommand = value;
//method I use to fire the property changed event
this.NotifyPropertyChanged("StartCommand");
}
}
我通过以下方式实例化命令实例:
StartCommand = new DelegateCommand<DomainObject>(StartSession);
但是,当单击按钮时,它永远不会触发命令......我在 StartSession 中的断点没有被命中。我哪里出错了?是我如何设置命令或参数吗?我想不通。另请注意,ItemsControl 中的项目绑定到 DomainObject 的实例,所以我想将它作为 CommandParameter 传递,这就是为什么我认为我搞砸了......