私はListBoxを持っています。各項目にはTextBlockとButtonがあります。ボタンにはコマンドがあります。 問題は、リストボックスのselecteditemがボタンをクリックしても変更されないということです。 (私はselectionchangedイベントが発生しないと思う)。テキストブロックをクリックするとうまくいきます。私のviewmodelの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にパラメータを渡すことができ、正常に動作します。ありがとう! –