作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 WPF 中:如何将 ItemsSource 循环的索引作为 CommandParameter 传递?
<ItemsControl ItemsSource="{Binding PageList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button
Content="{Binding Name}"
Command="{Binding DataContext.ChangePageCommand, ElementName=Window}"
CommandParameter="INDEX OF ACTUAL ITEM AT ITEMSSOURCE GOES HERE" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
所以,我想要的是将按下的按钮编号传递给 Command 方法。
谢谢!
最佳答案
简单的方法。
首先,螺旋索引。他们很烂。绑定(bind)到 SelectedItem
<ItemsControl ItemsSource="{Binding PageList}" SelectedItem="{Binding SelectedPage}">
现在,您不必尝试将索引传递给参数,因为所选页面已经在您的 ViewModel 中。
// set in the ctor
public ObservableCollection<Page> PageList {get;private set;}
// Omitting INPC stuff in the setter
public Page SelectedPage {get;set;}
// Here's the Execute method of the ICommand
private void ExecuteChangePageCommand(object parameter)
{
// lol screw the parameter
var currentPage = SelectedPage;
UpdateSelectedPageOrDoWhateverLolKthx(currentPage);
}
关于wpf - 如何在 WPF 中将 ItemsSource 的索引作为 CommandParameter 传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27528742/
我是一名优秀的程序员,十分优秀!