Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何跑步';超链接中的文本是什么?_C#_.net_Wpf_C# 4.0_Wpf 4.0 - Fatal编程技术网

C# 如何跑步';超链接中的文本是什么?

C# 如何跑步';超链接中的文本是什么?,c#,.net,wpf,c#-4.0,wpf-4.0,C#,.net,Wpf,C# 4.0,Wpf 4.0,这是我的XAML标记: <TextBlock> <Hyperlink Click="InstrumentFile_Click"> <Run Text="{Binding InstrumentFile}"/> </Hyperlink> </TextBlock> 我想获取绑定运行的文本。我怎样才能得到它?谢谢 这是一种愚蠢的情况。您已经使用InstrumentFile成员编写了一个类,并通过视图绑定到该类。

这是我的XAML标记:

<TextBlock>
    <Hyperlink Click="InstrumentFile_Click">
        <Run Text="{Binding InstrumentFile}"/>
    </Hyperlink>
</TextBlock>

我想获取绑定运行的文本。我怎样才能得到它?谢谢

这是一种愚蠢的情况。您已经使用InstrumentFile成员编写了一个类,并通过视图绑定到该类。现在,您想通过编程方式访问视图,以获取您首先提供给它的数据吗?它倒过来了


只需直接访问InstrumentFile成员。你一开始就写了代码

这是一种愚蠢的情况。您已经使用InstrumentFile成员编写了一个类,并通过视图绑定到该类。现在,您想通过编程方式访问视图,以获取您首先提供给它的数据吗?它倒过来了


只需直接访问InstrumentFile成员。你一开始就写了代码

说什么?你能重新解释一下这个标题/问题吗?它有什么问题?相反,你能改进你的打字错误吗?据我所知,这是重新措辞,而不是重新措辞:)你想从哪里“得到”它?在
仪器文件中,单击
方法?@fguchelaar:是。您可以检查我的编辑。如果您确定标记(层次结构)始终与示例中相同,则可以使用
((运行)link.Inlines.ElementAt(0)).Text
。但是我会考虑使用一些“更安全”的代码。你能重新解释一下这个标题/问题吗?它有什么问题?相反,你能改进你的打字错误吗?据我所知,这是重新措辞,而不是重新措辞:)你想从哪里“得到”它?在
仪器文件中,单击
方法?@fguchelaar:是。您可以检查我的编辑。如果您确定标记(层次结构)始终与示例中相同,则可以使用
((运行)link.Inlines.ElementAt(0)).Text
。但我会考虑使用一些“更安全”的代码,不像你想象的那么傻。我没有实现MVVM模式,也没有使用INotifyPropertyChanged。这里发布的textblock位于数据网格内。请您澄清我如何知道单击了哪个超链接并访问它的文本?属性
sender
为您提供单击的对象,并且您知道它的
DataContext
将是它绑定到的对象。如果您确实不想使用MVVM,请从
发送方
获取超链接,获取它绑定到的对象,然后访问该属性。但这是一个糟糕的模型,MVVM以极其简单和容易的方式解决了它。我不是这个意思——如果您更改视图并忘记了代码,注释的代码将因运行时错误而中断。只需使用对象获取DataContext并获取它绑定到的类。不太可能改变。这是一个质量问题,是由于缺乏一个好的代码结构造成的。不像你想象的那么愚蠢。我没有实现MVVM模式,也没有使用INotifyPropertyChanged。这里发布的textblock位于数据网格内。请您澄清我如何知道单击了哪个超链接并访问它的文本?属性
sender
为您提供单击的对象,并且您知道它的
DataContext
将是它绑定到的对象。如果您确实不想使用MVVM,请从
发送方
获取超链接,获取它绑定到的对象,然后访问该属性。但这是一个糟糕的模型,MVVM以极其简单和容易的方式解决了它。我不是这个意思——如果您更改视图并忘记了代码,注释的代码将因运行时错误而中断。只需使用对象获取DataContext并获取它绑定到的类。不太可能改变。这是由于缺乏良好的代码结构而导致的质量问题。。
private void InstrumentFile_Click(object sender, RoutedEventArgs e)
{
    Hyperlink link = sender as Hyperlink;
    if (link != null)
    {
        //need to get text here
    }
}