嗨,我有一点问题。
我正在使用数据绑定从互联网源检索数据。 一切顺利,数据完美呈现在一个位于数据模板中的文本块中。
到目前为止一直很好......
我很想在该文本块上使用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天......
答案 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中的TextBlock上声明事件)