2017-05-04 30 views
0

我在MenuVM.cs静态类下面的静态属性:XamlParseException结合斧头时:静态属性

public static Thickness getMenuCatalogItemMargin 
{ 
    get { return new Thickness(getMenuItemsWidth * 0.012, getMenuItemsWidth * 0.012, getMenuItemsWidth * 0.012, getMenuItemsWidth * 0.012); } 
} 

其中通过即时通讯试图在XAML在线29访问:

Margin="{Binding Path={x:Static local:MenuVM.getMenuCatalogItemMargin}, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}" 

以下错误表明它不能解释我的符号,所以这是使用RelativeSource参数调用静态属性的正确方法吗?

错误:

System.Windows.Markup.XamlParseException: '' 设置属性 'System.Windows.Data.Binding.Path' 引发了异常。”行号“29”和行位置“110”。

InvalidCastException:无法将类型为“System.Windows.Thickness”的对象转换为键入“System.Windows.PropertyPath”。

+1

的RelativeSource没有意义的静态属性,路径语法错误。注意,'getMenuCatalogItemMargin'是属性的错误名称。它应该是'MenuCatalogItemMargin'。 – Clemens

回答

1

由于WPF 4.5绑定到一个静态属性的语法如下:

Margin="{Binding Path=(local:MenuVM.getMenuCatalogItemMargin)}" 

之前4.5,你会使用

Margin="{Binding Source={x:Static local:MenuVM.getMenuCatalogItemMargin}}" 
+0

谢谢你教育我 – user1337604