2012-11-27 20 views
1

我在将异步数据绑定到文本块时遇到问题。如何使用XAML将数据绑定数据异步到我的文本块

当我一步一步地使用F11完成代码的工作。但是当我刚刚运行我的应用程序时,它会抛出一个错误:

Value cannot be null. 

它看起来像代码运行得太快。

这里是我的代码:

settings.GetSettings(); 
tbNamePlayer1.Text = settings.player1; 
tbNamePlayer2.Text = settings.player2; 

的getSettings方法:

StorageFolder sf = await Package.Current.InstalledLocation.GetFolderAsync("XML"); 
StorageFile st; 
try { 
    st = await sf.GetFileAsync(filename); 
} catch { 
    WriteInitialSettings(); 
} 
st = await sf.GetFileAsync(filename); 
var reader = XmlReader.Create(st.Path); 
XmlSerializer ser = new XmlSerializer(typeof(Settings)); 
settings = (Settings)ser.Deserialize(reader); 
player1 = settings.player1; 
player2 = settings.player2; 
difficulty = settings.difficulty; 
win = settings.win; 
lose = settings.lose; 
+2

不能看到任何数据绑定代码... – blindmeis

+0

tbNamePlayer1.Text = settings.player1; tbNamePlayer2.Text = settings.player2; 在这里,我尝试将玩家名称绑定到文本块 – apero

+0

那就是没有绑定代码,你只需要为你的tbNamePlayer1.Text属性赋值 – blindmeis

回答

1

您需要awaitGetSettings方法:

await settings.GetSettings(); 
tbNamePlayer1.Text = settings.player1; 
tbNamePlayer2.Text = settings.player2; 

这样,你的方法(异步)等到GetSettings是分配属性之前完成。

+0

Greate,谢谢!这完美地工作:D – apero