如何在textblock上使用简单的“IF”语句

时间:2012-03-02 21:21:13

标签: c# .net visual-studio-2010 windows-phone-7

嗨,我有一点问题。

我正在使用数据绑定从互联网源检索数据。 一切顺利,数据完美呈现在一个位于数据模板中的文本块中。

到目前为止一直很好......

我很想在该文本块上使用if语句

像:

    if (textblock.Text == ("good")

    {Do some stuff here}

我在文本块中添加了一个Loaded事件处理程序,现在我可以这样做:

    private void loadedevent_Loaded(object sender, RoutedEventArgs e)
    {
        var textBlock = sender as TextBlock;
        if (1 == 1)
        {
            textBlock2.Text = textBlock.Text;
        }
    }

我这样做只是为了查看文本是否被复制到textBlock2。 (所以我知道这有效)

问题出现了:

当我说:

    private void loadedevent_Loaded(object sender, RoutedEventArgs e)
    {
        var textBlock = sender as TextBlock;
        if (textBlock.Text == "good")
        {
            do some stuff here
        }
    }

它只是不会触发,我1000%确定textblok中的文字==“好”

请帮助...与此斗争超过2天......

4 个答案:

答案 0 :(得分:1)

  

它只是不会触发,我1000%确定textblok中的文字==“好”

我不相信。你基本上声称语言被破坏了。我可以向你保证,事实并非如此。

Text!= "good",这很明显。确保你没有不可打印的字符(换行符和前导/尾随空格是明显要检查的)。

我完全没有提到你使用调试器。对于像这样的东西,这应该是你的goto工具。您是否在调试器中检查了运行时的值?

答案 1 :(得分:1)

Loaded事件可能在设置TextBlock的Text之前触发。

答案 2 :(得分:0)

尝试使用textblock.Text.Trim()。Equals(“good”)

另外,正如其他人所说,可能在数据加载之前调用了Loaded。尝试使用“已显示”事件或“文本框”更改事件。 干杯!

答案 3 :(得分:0)

您可能需要使用

 SourceUpdated  Occurs when the source value changes for any existing property binding on this element. (Inherited from FrameworkElement.)

此事件将允许您查看输入的值==良好(实时)

编辑:在后面的代码中,您只需检查文本块的值。 (记住,你必须在xaml中的T​​extBlock上声明事件)