C# 如何从其子控件访问ListViewItem?
我从一个集合中获得了一些C# 如何从其子控件访问ListViewItem?,c#,wpf,listviewitem,C#,Wpf,Listviewitem,我从一个集合中获得了一些ListViewItems,我创建了一个DataTemplate,这样每个ListViewItem都有一个按钮作为子控件: <Window.Resources> <DataTemplate x:Key="ItemTemplate_AwesomeTemplate"> <StackPanel Orientation="Vertical" VerticalAlignment="Stretch">
ListViewItem
s,我创建了一个DataTemplate
,这样每个ListViewItem
都有一个按钮作为子控件:
<Window.Resources>
<DataTemplate x:Key="ItemTemplate_AwesomeTemplate">
<StackPanel Orientation="Vertical" VerticalAlignment="Stretch">
<Button Content="Awesome Button" Click="Awesome_Button_Click" HorizontalContentAlignment="Center" VerticalAlignment="Bottom" FontWeight="Bold" Foreground="Black"/>
</StackPanel>
</DataTemplate>
</Window.Resources>
<ListView x:Name="AwesomeListView" HorizontalAlignment="Left" Height="577" VerticalAlignment="Top" Width="934" ScrollViewer.HorizontalScrollBarVisibility="Visible" Foreground="Black" Margin="10,10,0,0">
<ListView.View>
<GridView>
<GridViewColumn Header="AwesomeHeader" Width="250" CellTemplate="{StaticResource ItemTemplate_AwesomeTemplate}"/>
</GridView>
</ListView.View>
</ListView>
当我单击某个按钮时,是否有方法更改包含单击的按钮的ListViewItem
的IsSelected
属性?要更改包含单击的按钮的ListViewItem
的IsSelected
属性,您应该使用DataContext
查找以下项目:这:
private void Awesome_Button_Click(object sender, RoutedEventArgs e)
{
var item = (sender as Button).DataContext;
int index = AwesomeListView.Items.IndexOf(item);//find the index of the item that contains the clicked button
AwesomeListView.SelectedItem = AwesomeListView.Items[index];//set the AwesomeListView's SelectedItem to item that contains the clicked button
}
如何改变?选择、取消选择或切换?如果切换,那么您是否考虑过使用ToggleButton
来代替?@dkozl我只想选择它,先生。对不起,我迟到了。