获取TreeView HierarchicalDataTemplate中动态生成按钮的当前行号

时间:2017-02-27 09:38:37

标签: c# wpf treeview

以下是我的代码

我尝试了下面的方法,但是对于每个按钮,我得到相同的行号: Button btn = sender as Button; if (btn != null) { row = Grid.GetRow(btn); // And you have the row number... } <TreeViewItem Header="Group by:"> <TreeView Name="TestTreeView" HorizontalAlignment="Stretch" BorderBrush="Transparent" BorderThickness="0" ScrollViewer.VerticalScrollBarVisibility="Auto" > <TreeView.Resources> <HierarchicalDataTemplate DataType="{x:Type mdl:TaggedCheckBox}" x:Name="Dispterrs1" ItemsSource="{Binding OrderOfGroup}"> <StackPanel Orientation="Horizontal" x:Uid="TreeStackPanel" x:Name="TreeStackPanel" > <Grid Name="grd_stack"> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="20*" /> <ColumnDefinition Width="20*" /> <ColumnDefinition Width="30*" /> <ColumnDefinition Width="Auto"/> </Grid.ColumnDefinitions> <Button Style="{StaticResource ButtonStyle}" Grid.Column="0" Height="8" Width="15" Margin="10,0,0,0" x:Name="btnUp" Tag="{Binding TagName}" Click="btnUP_Click"> <Image Source="..\images\up_arrow.png" /> </Button> <Button Style="{StaticResource ButtonStyle}" Grid.Column="1" Height="8" Width="15" Margin="10,0,0,0" x:Name="btnDown" Tag="{Binding TagName}" Click="btnDown_Click"> <Image Source="..\images\down_arrow.png" /> </Button> <CheckBox Margin="3,3,0,0" x:Name="cb_TechTerrs" Grid.Column="2" Tag="{Binding TagName}" IsChecked="{Binding IsChecked}"></CheckBox> <TextBlock Margin="5,3,0,0" x:Name="tbTechTerrs" Grid.Column="4" Text="{Binding TagName}"></TextBlock> </Grid> </StackPanel> </HierarchicalDataTemplate> </TreeView.Resources> <TreeView.ItemContainerStyle> <Style TargetType="TreeViewItem"> <Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}"/> </Style> </TreeView.ItemContainerStyle> </TreeView> </TreeViewItem> ,我认为这是因为第一个按钮默认位于第0行。

ClosedXML

0 个答案:

没有答案