Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从其子控件访问ListViewItem?_C#_Wpf_Listviewitem - Fatal编程技术网

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我只想选择它,先生。对不起,我迟到了。