2014-09-28 28 views
1

我有一个具有特定功能的静态类来提供资源路径。目前我只是在所有视图模型的绑定函数中创建包装。我想知道在Windows Phone 8.1中是否有某种方式将静态功能直接绑定到图像源。 在wpf Objectdataprovider中会很有用,但它在windows store应用程序中不受支持。我也无法找到任何文档。在Windows Store应用中使用静态方法进行绑定

<Rectangle.Fill> 
<ImageBrush Stretch="Fill" 
      ImageSource="{Binding ImagePath"/> 
</Rectangle.Fill> 

在此先感谢

+0

你可以修改函数的属性?如果是这样,你可以绑定到像静态属性[this](http://stackoverflow.com/questions/936304/binding-to-static-property) – kennyzx 2014-09-28 08:30:59

+0

之前试过。得到这个错误“类型FooBar是抽象的,必须包含一个明确的值” 但我还没有将类转换为非静态。 – 2014-09-28 08:45:13

+0

为什么你使用函数而不是属性有什么特别的原因吗? 'ImagePath'好像应该是属性而不是函数。 – 2014-09-28 08:52:11

回答

1

它(目前)无法绑定到一个静态类作为绑定需要一个对象实例。但是,您可以绑定到类的静态属性。

你在你的静态类创建一个实例包装:

public class BindingHelper 
    { 
    public static string ImagePath 
    { 
     get { return AssetHelper.ImagePath; } 
    } 
    } 

现在为这个BindingHelper创建的应用程序资源:

<application.resources> 
    <BindingHelper x:key="BindingHelperResource"></BindingHelper > 
</application.resources> 

,并使用该资源为你的绑定:

<textblock text="{Binding Path=ImagePath, Source={StaticResource BindingHelperResource}}"> 
+0

我无法在windows phone 8.1中找到BindingHelper。 – 2014-09-28 09:14:21

+0

您创建BindingHelper类。它只是你静态类的包装。还要用实际的静态类和静态方法的名称替换AssetHelper.Image路径。 – Postlagerkarte 2014-09-28 09:23:59

+0

工作。我认为这是因为使用静态函数,我得到错误。很高兴知道。谢谢!! – 2014-09-28 22:01:08

相关问题