0
我有一个ListBox,每个项目都有一个TextBlock和一个Button。按钮有一个命令。 问题是,单击按钮时列表框的selecteditem不会更改。 (我猜selectionchanged事件不会触发)。当我点击文本块时,它工作正常。我的视图模型的ListBox.SelectionChanged不会触发
<ListBox ItemsSource="{Binding FavList}" SelectedItem="{Binding SelectedFav,Mode=TwoWay}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<TextBlock Text="{Binding Name}"/>
<Button Content="+" Command="{Binding Source={StaticResource ViewModel},Path=AddToFavCommand}" Margin="120,0,0,0"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
相关零件(我不认为这有什么问题):
private Products _selectedFav;
public Products SelectedFav
{
get
{
return _selectedFav;
}
set
{
if (value != _selectedFav)
{
_selectedFav = value;
NotifyPropertyChanged("SelectedFav");
}
}
}
public DelegateCommand AddToFavCommand { get; set; }
AddToFavCommand = new DelegateCommand(addtofav);
private void addtofav(object parameter){
}
所以我需要在命令运行前更改所选择的项目。我怎样才能做到这一点?
我试着解决它,而不使用MVVM Light,但我可以传递一个参数给我的DelegateCommand,正如你所建议的,它工作正常。谢谢! – 2012-03-07 14:53:54