WPF单击事件处理程序获取文本块文本

Yog*_*vnn 3 c# wpf event-handling

我的xaml中有一个文本块:

<DataTemplate x:Key="InterfacesDataTemplate"
              DataType="ca:Interface">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        <TextBlock Grid.Column="1" Text="{Binding Path=Name}" 
                   MouseLeftButtonDown="interface_mouseDown"/>
    </Grid>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)

在后面的代码我有一个事件处理程序单击(双击)

private void interface_mouseDown(object sender, MouseButtonEventArgs e)
{
    var tb = sender as TextBox;
    if (e.ClickCount == 2)
        MessageBox.Show("Yeah interfac " + tb.Text);
}
Run Code Online (Sandbox Code Playgroud)

我得到一个NullReferenceException.

Jon*_*n B 6

var tb = sender as TextBox
Run Code Online (Sandbox Code Playgroud)

这导致null因为它实际上是一个TextBlock.

只需改为

var tb = sender as TextBlock
Run Code Online (Sandbox Code Playgroud)