我有一个绑定到ObservableCollection的ListBox:
<ListBox Name="ListBoxItemsList">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Margin="0" FlowDirection="RightToLeft">
<Button Content="Add me!" Click="AddItem" />
<TextBlock Text="{Binding Path=name}" />
<TextBlock Text="{Binding Path=description}" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
ObservableCollection对象有几个属性,包括uniqueID
,name
,description
,colour
,flavour
。根据ListBox中选定的项目,我想使用所选项目的属性填充一些标签。此外,每个项目的Button应该执行一个独特的操作(即将一个相关的项添加到数组)但是我无法弄清楚如何向AddItem()方法发送一个唯一的参数。我认为这将是一个常见的用例,但我通过谷歌搜索找不到任何东西。
感谢。
答案 0 :(得分:1)
根据ListBox中的选定项目,我想了解详细信息 一些标签显示所选项目的属性
您可以将ListBox.SelectedItem绑定到DependencyProperty,然后将该属性绑定到这些标签。
此外,每个项目的按钮应执行独特的操作(即 将一个相关项添加到数组中但是我无法弄清楚 如何向AddItem()方法发送唯一参数。
您可以将Item ID添加到Button.Tag
<Button Content="Add me!" Click="AddItem" Tag={Binding Path=id} />
然后只需获取发件人的按钮标记
public void button_clicked(object sender, event e) {
int id = ((Button)sender).Tag as Int32;
...
}
编辑:您还可以将完整的项目而不仅仅是ID绑定到按钮标记。