Wpf获取按钮上的DataGrid行号甚至C#

时间:2015-04-22 01:10:33

标签: c# wpf datagrid

我在DataGrid的每一行中都有2个按钮。它们将用于保存已编辑的行信息,以删除行。但我无法检索点击事件的行号。 (在我的stackoverflow上有类似的问题,但没有一个对我有用)

 <DataTemplate x:Key="myTemplate">
        <StackPanel Orientation="Horizontal">
            <Button Height="21" Width="21" Margin="4" Style="{StaticResource InformButton}" Click="ClientSave">
                <StackPanel Height="17" Width="20">
                    <Image Source="pack://application:,,,/TimeCounter;component/resources/save.png" Height="14" Width="14" Margin="-1,0" HorizontalAlignment="Left"/>
                </StackPanel>
            </Button>
            <Button Height="21" Width="21" HorizontalAlignment="Right" Margin="4"  Style="{StaticResource InformButton}">
                <StackPanel Height="18" Width="21">
                    <Image Source="pack://application:,,,/TimeCounter;component/resources/delete.png" Height="14" Width="13" Margin="0 ,0" HorizontalAlignment="Left"/>
                </StackPanel>
            </Button>
       </StackPanel>
 </DataTemplate>

1 个答案:

答案 0 :(得分:1)

如果坚持事件,我会使用绑定来检索数据项及其索引。

在事件处理程序中:

var btn = sender as Button;
var item = btn.GetBindingExpression(Button.DataContextProperty).DataItem as YourRowItemClass;
var index = YourViewModel.ItemCollection.IndexOf(item);

查看型号:

class YourViewModel : INotifyPropertyChanged {
    ObservableCollection<RowItem> ItemCollection { get; private set; }
}

在按钮XAML中:

DataContext="{Binding}"