Windows Phone で MVVMlight を使用しています。モデルは、ロケーターを介して xaml 経由でバインドされます。ビュー モデルは、webrequest からモデルの新しいインスタンスを読み込み、それを割り当てます。ビューが更新されていない理由がわかりません。新しいインスタンスが割り当てられているためですか? 新しいインスタンスを割り当てる代わりにモデルのプロパティを更新すると、ビューで更新されます。
モデルの新しいインスタンスを割り当てるときにビューを更新するにはどうすればよいですか?
モデルを見る:
public class MyViewModel : ViewModelBase
{
public MyModel Model { get; set; }
public MyViewModel ()
{
if (IsInDesignMode)
{
}
else
{
//async call
api.GetModel(response =>
Deployment.Current.Dispatcher.BeginInvoke
(() =>
{
//this works.
//Model.Property1 = "Some Text";
//this doesn't work
Model = response.Data;
}
));
}
}
}
View.xaml
<UserControl x:Class="Grik.WindowsPhone.CardDetailsView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
DataContext="{Binding MyModel, Source={StaticResource Locator}}" >
<Grid x:Name="LayoutRoot" >
<TextBlock Text="{Binding Model.Property1}" />
</Grid>
</UserControl>