绑定在WinRT - XAML中不起作用

时间:2014-04-28 09:56:17

标签: c# xaml binding windows-runtime winrt-xaml

我有自己的控制权,绑定不起作用。下面是我试图绑定的代码。

XAML中的代码

<cc:MyControl Name="myControl" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ItemSource="{Binding Path=Document}"></cc:MyControl>

CodeSehind for ItemSource依赖属性

中的代码
 public Object ItemSource
    {
        get { return (Object)GetValue(ItemSourceProperty); }
        set { SetValue(ItemSourceProperty, value); }
    }

public static readonly DependencyProperty ItemSourceProperty =
        DependencyProperty.Register("ItemSource", typeof(Object), typeof(MyControl), new PropertyMetadata(null, new PropertyChangedCallback(DocumentLoadCallBack)));

 private static void DocumentLoadCallBack(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
}

这甚至没有被触发.....

但是当我为ItemSource提供一些没有绑定的数据时,会触发DocumentLoadCallBack。

<cc:MyControl Name="myControl" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ItemSource="ImagePath"></cc:MyControl>

“文档”绑定属性代码

public sealed partial class MainPage : Page
{
private StorageFile _doc = null;
    public StorageFile Document
    {
        get
        {
            if (this._doc == null)
            {
                this._doc = GetDoc().Result;
            }
            return this._doc;
        }
        set
        {
            this._doc = value;
        }
    }

    private async Task<StorageFile> GetDoc()
    {
        //return imagedocument location
    }
}

任何人,帮帮我吧?

1 个答案:

答案 0 :(得分:1)

您在属性的get访问者中使用异步方法。 因此,当你尝试得到它时,它不会返回结果,因为该方法是异步的,你不应该这样做。

您应首先读取文件(例如,加载事件),然后更新属性,而不是读取属性内的文件。 这不是一个非常好的开发实践。