, конечно, этот вопрос обсуждался тысячи раз, но я не нашел подходящего решения для моих нужд. Я новичок в SilverLIght, и я намеревался хорошо начать использовать MVVM.
Поэтому я сделал следующий вид модели:
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 виден в метке. Но второй после асинхронного метода не меняет содержимое LAbel. Должен ли я добавить какой-то механизм, например PropertyChanged, чтобы сказать, что это свойство изменилось? если да, то как я могу это сделать, используя только xaml?
спасибо за помощь