C# 评估元素';上的主题样式属性时发现循环引用;System.Windows.Controls.TextBlock';
我有一个简单的WPF应用程序,它在ListView中显示一个字符串集合。将鼠标悬停在某一行上时,将显示带有文本的工具提示: 出现工具提示并使用鼠标滚轮垂直滚动后,将引发带有此消息的System.InvalidOperationException 计算元素“System.Windows.Controls.TextBlock”的ThemeStyle属性时找到循环引用 XAML包含一个带有样式的ListView,它为每一行显示工具提示:C# 评估元素';上的主题样式属性时发现循环引用;System.Windows.Controls.TextBlock';,c#,wpf,C#,Wpf,我有一个简单的WPF应用程序,它在ListView中显示一个字符串集合。将鼠标悬停在某一行上时,将显示带有文本的工具提示: 出现工具提示并使用鼠标滚轮垂直滚动后,将引发带有此消息的System.InvalidOperationException 计算元素“System.Windows.Controls.TextBlock”的ThemeStyle属性时找到循环引用 XAML包含一个带有样式的ListView,它为每一行显示工具提示: <Window x:Class="CylicDepend
<Window x:Class="CylicDependencyWpfApplication.MainWindow"
...>
<ListView ItemsSource="{Binding}">
<ListView.Resources>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="ToolTip">
<Setter.Value>
<TextBlock>tooltip</TextBlock>
</Setter.Value>
</Setter>
</Style>
</ListView.Resources>
<ListView.View>
<GridView>
<GridViewColumn Width="300" Header="Column1" DisplayMemberBinding="{Binding}"/>
</GridView>
</ListView.View>
</ListView>
</Window>
问题的原因是什么?请帮帮我 出现此问题,因为样式列表不仅应用于ListView的TextBlock,还应用于工具提示中的TextBlock!!这将向工具提示中包含的文本块添加工具提示。因此,这个循环就发生了 这可以通过如下方式进行修复:
<ListView.Resources>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="ToolTip">
<Setter.Value>
<TextBlock ToolTip="">tooltip</TextBlock>
</Setter.Value>
</Setter>
</Style>
</ListView.Resources>
工具提示
这样,样式就不再将工具提示应用于工具提示中包含的文本块
private void App_OnDispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)
{
Exception ex = e.Exception;
// System.InvalidOperationException
string name = ex.GetType().FullName;
// Cyclic reference found while evaluating the ThemeStyle property on element 'System.Windows.Controls.TextBlock'.
string message = ex.Message;
}
<ListView.Resources>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="ToolTip">
<Setter.Value>
<TextBlock ToolTip="">tooltip</TextBlock>
</Setter.Value>
</Setter>
</Style>
</ListView.Resources>