我在以下代码中有点随机获取InvalidOperationException,有什么好办法可以修复它?
public class ParsedTextBlock : TextBlock
{
static ParsedTextBlock() {
TextProperty.OverrideMetadata(typeof(ParsedTextBlock),
new FrameworkPropertyMetadata("No Text Set",
FrameworkPropertyMetadataOptions.AffectsMeasure | FrameworkPropertyMetadataOptions.AffectsRender,
OnTextChanged)
);
}
private static void OnTextChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args)
{
ParsedTextBlock control = (ParsedTextBlock)obj;
control.Inlines.Clear();
control.Inlines.Add(new Run("test " + args.NewValue as string))
}
}
答案 0 :(得分:0)
我不相信在文本更改事件中更改文本将是一个好主意。这会导致事件以递归方式触发并最终生成堆栈溢出... 多么具有讽刺意味:)