在调试时检查公共语言运行时异常,会引发一系列三个异常。
消息(对所有人)说:
属性路径无效。“System.Dynamic.DynamicObject+MetaDynamic”没有名为“Items”的公共属性。
我试图找到一个Items
没有成功的属性,但事实是我从未使用过 aDynamicObject
并且我无法找出需要干预的地方。
人类开发人员完全无法理解异常堆栈中的任何其他信息。
我很确定我的代码中唯一的“动态”是DynamicResource
在我的 XAML 中,也许这就是起点。
更新:
这是我将 DynamicResource 设置为属性值的样式之一,也是使用示例。
<Style x:Key="NoChromeButton" TargetType="{x:Type Button}">
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Padding" Value="1"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Grid x:Name="Chrome" Background="{TemplateBinding Background}" SnapsToDevicePixels="true">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Foreground" Value="#ADADAD"/>
<Setter Property="Opacity" TargetName="Chrome" Value="0.5"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="BorderBrush" Value="BlueViolet"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
然后用作简单的 Button 样式:
<Button Grid.Column="3" Margin="5" Style="{DynamicResource NoChromeButton}" Width="24" Height="24" Click="ShutDown" IsEnabled="False" />
更新 2:
输出消息说明了其中一个明显相同的例外:
无法从“SelectedObject”(输入“Configurator”)获取“Name”值(输入“Object”)。BindingExpression:Path=SelectedObject.Name; DataItem='PropertyGrid'(名称='PropertyGridTab');目标元素是'PropertyGrid'(名称='PropertyGridTab');目标属性是“SelectedObjectName”(类型“字符串”) InvalidOperationException:“System.InvalidOperationException:属性路径无效。“System.Dynamic.DynamicObject+MetaDynamic”没有名为“Items”的公共属性。
更新 3:
我发现其中一个异常与SelectedObject
绑定到自定义视图模型的 Xceed 属性网格有关。它完美地工作,但它引发了上述“警告”。我认为这是 Xceed 问题团队的问题。