我有自己的控制权,绑定不起作用。下面是我试图绑定的代码。
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
}
}
任何人,帮帮我吧?
答案 0 :(得分:1)
您在属性的get访问者中使用异步方法。 因此,当你尝试得到它时,它不会返回结果,因为该方法是异步的,你不应该这样做。
您应首先读取文件(例如,加载事件),然后更新属性,而不是读取属性内的文件。 这不是一个非常好的开发实践。