在调试时检查公共语言运行时异常,引发了一系列三个异常。
消息(为所有人)说:
属性路径无效。 'System.Dynamic.DynamicObject +亚动态' 没有名为'Items'的公共属性。
我试图找到一个Items
属性但没有成功,但事实是我从未使用过DynamicObject
,而且我无法找到需要干预的地方。
异常堆栈中的任何其他信息对于人类开发人员来说完全不可理解。
我很确定我的代码中唯一的“动态”是我的XAML中的DynamicResource
,也许这就是起点。
更新
这是我将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'获取'Name'值(类型'Object')(类型 '配置器')。 BindingExpression:路径= SelectedObject.Name; DataItem ='PropertyGrid'(Name ='PropertyGridTab');目标元素是 'PropertyGrid'(Name ='PropertyGridTab');目标属性是 'SelectedObjectName'(类型'String') InvalidOperationException:'System.InvalidOperationException:Property 路径无效。 'System.Dynamic.DynamicObject + MetaDynamic'没有 有一个名为'Items'的公共财产。
更新3:
我发现其中一个异常与绑定到自定义View Model的Xceed Property Grid SelectedObject
有关。它运作完美,但它提出了上述“警告”。我认为这是Xceed问题小组的问题。