肯定這個問題已經辯論了數千次,但我沒有找到任何合適的解決方案來滿足我的需要。我是SilverLIght的新手,我打算使用MVVM開始。因此 我做了以下視圖模型:DataBinding在viewModel中的一個屬性
public class MyViewModel
{
private IRepository _Repository;
public string CountText { get; set; }
public MyViewModel (IRepository repository)
{
_Repository = repository;
CountText = "test ctor";
}
public void MyButtonCommand()
{
_Repository.GetResult((Result r) => MyActionAsync(r), (Exception e) => ManageException(e));
}
public void MyActionAsync(SchedeConsunitiviResult result)
{
CountText = string.Format("{0} items", result.Count);
}
public void ManageException(Exception e)
{
//to log the exception here and display some alert message
}
}
,在這裏我的XAML:
<sdk:Label Content="{Binding Path=CountText, Mode=TwoWay}" Grid.Row="3" Height="28" HorizontalAlignment="Left" Margin="12,142,0,0" Name="label1" VerticalAlignment="Top" Width="120" Grid.ColumnSpan="2" />
CountText的第一instanciation在標籤可見。但異步方法之後的第二個不會更改LAbel的內容。我應該添加一些像PropertyChanged這樣的機制來告訴視圖這個屬性已經改變了嗎?如果是這樣,我該如何使用xaml來做到這一點?
THX對您有所幫助
又吼,它就像一個魅力! – Arthis