我有一个自定义用户控件,我们称之为MyUserControl
。我无法粘贴它,因为它包含1个tabcontrol + 2个datagrids。
我的UC加载了一个包含我所有样式的resourceDictionnary。
我的窗口中有一个名为grid_1
的网格。
当我点击按钮时,我就这样做了:
grid1.Children.Clear();
grid1.Children.Add(new MyUserControl());
它工作正常,我没有任何错误或警告。但是当我再次点击我的按钮时,我在输出中有10次这个警告:
System.Windows.ResourceDictionary Warning: 9 : Resource not found; ResourceKey='System.Windows.ResourceReferenceExpression'; ResourceKey.HashCode='43311876'; ResourceKey.Type='System.Windows.ResourceReferenceExpression'
有没有办法找到更详细的跟踪来找到问题的来源? 我的控件第二次加载时,我怎么可能只有错误?
您可以想象在我的所有代码中都没有引用System.Windows.ResourceReferenceExpression
。
你有任何想法解决这个问题或者至少帮我找到消息来源吗?
谢谢!
答案 0 :(得分:0)
这个问题很老,但是我只能找到模糊的答案,表明“ StaticResource”和“ DynamicResource”的混合使用会导致这些警告。
在我的情况下,当我从DataGrid删除条目时出现警告。这些条目已绑定到ObservableCollection。
此问题是由包含颜色和画笔的ResourceDictionary(XAML)引起的。笔刷将颜色用作动态资源,例如
SolidColorBrush x:Key =“ TableBorderBrush” Color =“ { DynamicResource TableBorderColor}”
在包含DataGrid的XAML文件中,这些笔刷之一用作元素作为StaticResource。因此,使用了使用DynamicResource的StaticResource。将 StaticResource 用于画笔后,警告消失了。