WPF绑定问题

时间:2010-01-06 13:53:34

标签: wpf binding treeview actualwidth

我正在尝试自定义TreeView控件。当用户选择TreeView中的项目时,我需要将ActualWidth的{​​{1}}存储在项目的标记中:

SelectedItem

稍后,我会听取 <Style x:Key="{x:Type TreeViewItem}" TargetType="{x:Type TreeViewItem}"> <!-- ... --> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type TreeViewItem}"> <Grid ShowGridLines="True"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <Rectangle x:Name="rect" /> <ContentPresenter x:Name="PART_Header" ContentSource="Header" Margin="5" /> <ItemsPresenter x:Name="ItemsHost" Grid.Row="1" Grid.Column="1" /> <!-- ... --> </Grid> <ControlTemplate.Triggers> <Trigger Property="IsSelected" Value="true"> <Setter Property="Tag" Value="{Binding ElementName=rect, Path=ActualWidth}" /> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> 的{​​{1}}事件:

SelectedItemChanged

现在的问题是item.Tag始终为null。这是我绑定的问题吗?或者应该以不同的方式完成事情?

1 个答案:

答案 0 :(得分:1)

试试:

<Setter Property="Tag" Value="{Binding Path=ActualWidth, RelativeSource={x:Static RelativeSource.Self}}" />
相关问题