如何在listview中绑定按钮

时间:2014-12-12 23:10:56

标签: wpf mvvm

我无法将listview中的按钮绑定到GoToTask属性,每隔一个绑定,包含网格中的第二个按钮都能正常工作。

<Grid>
    <ListView ItemsSource="{Binding Projects}" SelectedItem="{Binding SelectedProject, Mode=TwoWay}" Grid.Row="1">
        <ListView.Resources>
            <Style TargetType="{x:Type GridViewColumnHeader}">
                <Setter Property="Visibility" Value="Collapsed"/>
            </Style>
        </ListView.Resources>
        <ListView.View>
            <GridView>
                <GridViewColumn DisplayMemberBinding="{Binding Name}"/>
                <GridViewColumn Header="Go">
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <Button Content="Go" Command="{Binding Path=GoToTasks, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}" />
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>
            </GridView>
        </ListView.View>
    </ListView>
    <Button Height="20" Width="50" HorizontalAlignment="Right" Command="{Binding GoToTasks}" Content="Go"/>
</Grid>

一切都在UserControl中。 有什么问题?

1 个答案:

答案 0 :(得分:2)

GridViewColumn不是VisualTree的一部分,因此不允许使用FindAncestor。
Similar here。尝试使用ElementName,据我记得它使用LogicalTree。