Кнопка WPF в ListView, как узнать, какая кнопка была нажата - PullRequest
2 голосов
/ 20 июля 2011

WPF 3.5
У меня есть ListView, для которого XAML выглядит так

<ListView Name="ListView_FileAttachments">
<ListView.View>
    <GridView>
                    <GridView.Columns>
                        <GridViewColumn Header="Type"></GridViewColumn>
                        <GridViewColumn Header="File Name"></GridViewColumn>                            
                        <GridViewColumn Header="Security">
                            <GridViewColumn.CellTemplate>
                                <DataTemplate>
                                    <Button Content="Set Restrictions" Click="Restrictions_Clicked"></Button>
                                </DataTemplate>
                            </GridViewColumn.CellTemplate>

                        </GridViewColumn>
                    </GridView.Columns>
                </GridView>
            </ListView.View>              
        </ListView>

Когда я нажимаю на кнопку в отдельной ячейке, как узнать, какая кнопка была нажата (чтобы очиститьхотя меня интересует элемент ListView, к которому принадлежит эта кнопка, потому что я действительно хочу получить значение другого столбца в этой строке)

1 Ответ

2 голосов
/ 27 июля 2011

DataContext кнопки (т. Е. Отправитель события) будет элементом данных из элементов списка. Если вам нужен контейнер (то есть ListViewItem), то вы можете либо пройти по визуальному дереву (например, используя VisualTreeHelper.GetParent ), пока не нажмете ListViewItem, либо не сможете использовать ListView_FileAttachments.ItemContainerGenerator.ContainerFromItem передача элемента данных (который вы получаете из DataContext кнопки).

...