我使用MVVM在DataGrid中实现了Label
。我的要求是当用户点击Label
需要引发的事件时才能正常工作。但现在我想捕获标签文本,但我无法实现这一点:
<DataGrid HorizontalAlignment="Stretch" Name="DgPreviousEntries" HeadersVisibility="None"
ItemsSource="{Binding WeeklyWiseEntries}" AutoGenerateColumns="False" SelectedItem="{Binding SelectedweekEntry}">
<DataGrid.Columns>
<DataGridTemplateColumn IsReadOnly="True" Width="600">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel>
<Grid>
<Label Grid.Column="0" Grid.Row="1">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseLeftButtonUp">
<i:InvokeCommandAction Command="{Binding RelativeSource={RelativeSource AncestorType=DataGrid}, Path=DataContext.WeekCommand}">
</i:InvokeCommandAction>
</i:EventTrigger>
</i:Interaction.Triggers>
<Label.Content>
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="Mon 
 {0}">
<Binding Path="Monday" Source="Monday" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</Label.Content>
</Label>
</Grid>
</StackPanel>
<DataTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataGrid.Columns>
</DataGrid>
答案 0 :(得分:0)
您是否尝试将标签文本作为命令参数传递?
CommandParameter={Binding Path=Content, ElementName=LabelName}
E:
<Label Grid.Column="0" Grid.Row="1" Name="DayLabel">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseLeftButtonUp">
<i:InvokeCommandAction
Command="{Binding RelativeSource={RelativeSource AncestorType=DataGrid}, Path=DataContext.WeekCommand}"
CommandParameter={Binding Path=Content, ElementName=DayLabel}>
</i:InvokeCommandAction>
</i:EventTrigger>
</i:Interaction.Triggers>
<Label.Content>
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="Mon 
 {0}">
<Binding Path="Monday" Source="Monday" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</Label.Content>
</Label>