gpt4 book ai didi

wpf - 获取对 HeaderedItemsControl 中项目的引用

转载 作者:行者123 更新时间:2023-12-03 10:21:38 26 4
gpt4 key购买 nike

XAML:

<HeaderedItemsControl ItemsSource="{Binding FooCollection}">
<HeaderedItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text={Binding foo}/>
<Button Command="{Binding DeleteFoo}">Delete</Button>
</StackPanel>
</DataTemplate>
</HeaderedItemsControl.ItemTemplate>

鉴于此 XAML,如何在 ViewModel 中的 DeleteFoo 命令和方法中获取对 FooCollection 中单击的项目的引用?通常在 DataGrid 等中,它只是绑定(bind)在 ViewModel 中的 SelectedItem,但令人讨厌的是 HeaderedItemsControl 没有此选项。

是否有另一种方法可以通过 CommandArguments 传递对项目的引用,或者它在 FooCollection 中的索引位置?

我意识到 ListView 是一个类似的控件,它有一个 selectedItem 等效项,但是我设置了一个格式很好的 HeaderedItemsControl (带有标题标题),所以如果可能的话,我宁愿不必放弃它。

非常感谢您的任何帮助。

最佳答案

无论如何我都会把它作为答案.. ItemsControls 将 ListItem 的 DataContext 设置为它们所代表的对象,这样您就可以使用获得对单击项目的引用

<HeaderedItemsControl ItemsSource="{Binding FooCollection}">
<HeaderedItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text={Binding foo}/>
<Button Command="{Binding DeleteFoo}" CommandParameter={Binding}>Delete</Button>
</StackPanel>
</DataTemplate>
</HeaderedItemsControl.ItemTemplate>

关于wpf - 获取对 HeaderedItemsControl 中项目的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15136941/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com