【发布时间】:2016-06-13 17:12:03
【问题描述】:
我有DataGrid 和DataTemplate:
<DataGrid ItemsSource="{Binding Persons}" Grid.Row="1" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding IdPerson}">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Button DataContext="{Binding Path=Data, Source={StaticResource proxy}}"
Command="{Binding DataContext.HelloCommand, RelativeSource={RelativeSource
AncestorType=Window}}"/>
<TextBlock Grid.Row="1" HorizontalAlignment="Center" Text = "{Binding
DataContext.Hello, RelativeSource={RelativeSource AncestorType=DataGrid}}"/>
</Grid>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
</DataGridTextColumn>
<DataGridTextColumn Header="FirstName" Binding="{Binding FirstName}"/>
<DataGridTextColumn Header="LastName" Binding="{Binding LastName}"/>
</DataGrid.Columns>
</DataGrid>
当用户点击DataTemplate的任何地方(在HeaderTemplate范围内)是否可以调用Button的Command="{Binding DataContext.HelloCommand, RelativeSource={RelativeSource AncestorType=Window}}"?
【问题讨论】:
-
是的,使用 Blend SDK 中的行为。 here is an example
-
.. 好像这是你今天的第四个问题 :)
-
@Gopichandar 是的!这真的很有趣! :)
标签: c# wpf mvvm command datatemplate