在Windows Store应用中使用静态方法进行绑定
我有一个具有特定功能的静态类来提供资源路径。目前我只是在所有视图模型的绑定函数中创建包装。我想知道在Windows Phone 8.1中是否有某种方式将静态功能直接绑定到图像源。 在wpf Objectdataprovider中会很有用,但它在windows store应用程序中不受支持。我也无法找到任何文档。在Windows Store应用中使用静态方法进行绑定
<Rectangle.Fill>
<ImageBrush Stretch="Fill"
ImageSource="{Binding ImagePath"/>
</Rectangle.Fill>
在此先感谢
它(目前)无法绑定到一个静态类作为绑定需要一个对象实例。但是,您可以绑定到类的静态属性。
你在你的静态类创建一个实例包装:
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}}">
我无法在windows phone 8.1中找到BindingHelper。 – 2014-09-28 09:14:21
您创建BindingHelper类。它只是你静态类的包装。还要用实际的静态类和静态方法的名称替换AssetHelper.Image路径。 – Postlagerkarte 2014-09-28 09:23:59
工作。我认为这是因为使用静态函数,我得到错误。很高兴知道。谢谢!! – 2014-09-28 22:01:08
你可以修改函数的属性?如果是这样,你可以绑定到像静态属性[this](http://stackoverflow.com/questions/936304/binding-to-static-property) – kennyzx 2014-09-28 08:30:59
之前试过。得到这个错误“类型FooBar是抽象的,必须包含一个明确的值” 但我还没有将类转换为非静态。 – 2014-09-28 08:45:13
为什么你使用函数而不是属性有什么特别的原因吗? 'ImagePath'好像应该是属性而不是函数。 – 2014-09-28 08:52:11