ปัญหาที่เรากำลังประสบคือ เราไม่สามารถเชื่อมโยงการทำงานในแอปพลิเคชัน Prism Silverlight ของเราได้ เมื่อใช้วิธีการแรกของ view-model มุมมองแรกทำงานได้ดี เราได้ตรวจสอบเอกสารอย่างเป็นทางการและเว็บไซต์ต่างๆ แล้ว แต่ยังคงไม่สามารถแก้ไขปัญหาได้ ด้านล่างนี้เป็นโค้ดสำหรับทั้ง view-model ก่อน และ view first เราขาดอะไรบางอย่างไปหรือเปล่า? อ่านเกี่ยวกับเรื่องนี้ในบล็อกของฉัน http://silvercasts.blogspot.com
แนวทางแรกของ View-Model:
บูทสแตรปเปอร์:
internal void RegisterLoginRegionAndView()
{
IRegionManager regionManager = Container.Resolve<IRegionManager>();
regionManager.RegisterViewWithRegion(ShellRegionNames.MainRegion,
() => Container.Resolve<IViewModel>().View);
}
ดูรุ่น:
public ViewModel(IView view)
{
View = view;
View.SetModel(this);
User = new User();
User.Username = "TestUser";
}
อินเทอร์เฟซ ViewModel:
public interface IViewModel
{
IView View { get; set; }
}
ดูอินเทอร์เฟซ:
public interface IView
{
void SetModel(IViewModel model);
}
ดู Xaml:
<TextBox x:Name="Username" TextWrapping="Wrap" Text="{Binding User.Username}" />
ดูโค้ดเบื้องหลัง:
public void SetModel(IViewModel viewModel)
{
this.DataContext = viewModel;
}
ดูแนวทางแรก
บูทสแตรปเปอร์:
regionManager.RegisterViewWithRegion(ShellRegionNames.MainRegion, typeof(IView));
ดูรุ่น:
public ViewModel()
{
User = new User();
User.Username = "TestUser";
}
ดูโค้ดเบื้องหลัง:
public View(IViewModel viewModel)
{
InitializeComponent();
this.DataContext = viewModel;
}