作为命令参数传递的 WPF SelectedItem 没有 return 值
WPF SelectedItem passed as a command parameter doesn't return value
<ScrollViewer VerticalScrollBarVisibility="Auto">
<ListBox x:Name="RootListView" ItemsSource="{Binding Ratings}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid ShowGridLines="True">
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="40" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
.... Some TextBoxes with Labels are here to fill the grid .....
<Button Grid.Row="4" Grid.Column="1" Content="Delete"
Command="{Binding ElementName=RootListView, Path=DataContext.DeleteRatingCommand}"
CommandParameter="{Binding ElementName=RootListView, Path=SelectedItem}">
</Button>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</ScrollViewer>
在我的视图模型中 Ratings
是:
public ObservableCollection<RatingModel> Ratings;
并且 DeleteRatingCommand
是一个 ICommand
对象。
此视图中显示了一整套评分(包含信息的网格),每个评分都有一个删除按钮。当按下相应评级的按钮时,我想将评级对象发送到具有 SelectedItem
属性 的视图模型。尽管调用了绑定方法,但 SelectedItem 参数没有传递任何内容,具体是 null
值。在这种情况下,如何正确使用 SelectedItem
将有关要删除哪个评级的信息发送到视图模型?还有其他可能吗?我不确定这种做法是否正确。
我假设单击按钮实际上并没有设置 SelectedItem 属性。
尝试更改对行上下文数据的绑定。
CommandParameter="{Binding Path=.}"
<ScrollViewer VerticalScrollBarVisibility="Auto">
<ListBox x:Name="RootListView" ItemsSource="{Binding Ratings}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid ShowGridLines="True">
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="40" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
.... Some TextBoxes with Labels are here to fill the grid .....
<Button Grid.Row="4" Grid.Column="1" Content="Delete"
Command="{Binding ElementName=RootListView, Path=DataContext.DeleteRatingCommand}"
CommandParameter="{Binding ElementName=RootListView, Path=SelectedItem}">
</Button>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</ScrollViewer>
在我的视图模型中 Ratings
是:
public ObservableCollection<RatingModel> Ratings;
并且 DeleteRatingCommand
是一个 ICommand
对象。
此视图中显示了一整套评分(包含信息的网格),每个评分都有一个删除按钮。当按下相应评级的按钮时,我想将评级对象发送到具有 SelectedItem
属性 的视图模型。尽管调用了绑定方法,但 SelectedItem 参数没有传递任何内容,具体是 null
值。在这种情况下,如何正确使用 SelectedItem
将有关要删除哪个评级的信息发送到视图模型?还有其他可能吗?我不确定这种做法是否正确。
我假设单击按钮实际上并没有设置 SelectedItem 属性。
尝试更改对行上下文数据的绑定。
CommandParameter="{Binding Path=.}"