Kafamı WPF, Unity ve MvvMlight (galasoft) etrafında almaya çalışıyorum. Şimdiye kadar benim küçük kurulum çalışmalarım. Uygulamamı çalıştırırsam, etiket DataService tarafından oluşturulan rastgele bir adla doldurulur. (tüm hareketli parçaları işe almak için küçük zafer)Unity 4 ve MvvmLight ile Visual Studio'da DesignTime verileri nasıl etkinleştirilir?
Ancak Visual Studio'nun tasarım görünümünde etiket boş olarak kalır. VisualStudio'yu etiketimde bazı 'tasarım zamanı' verileri oluşturmaya nasıl ikna edebilirim?
kullanıyorum: Visual Studio Premium 2013 Birlik 4.0.1, MvvmLight 5.2, App.xaml ben yılında 4,5
App.xaml.cs
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
IUnityContainer container = new UnityContainer();
container.RegisterType<IDataService, DataService>();
container.RegisterType<IMainViewModel, MainViewModel>();
MainWindow mainWindow = container.Resolve<MainWindow>();
mainWindow.Show();
base.OnStartup(e);
}
}
.net StartupUri
MainWindow.xaml
tanımlamadınız<Window x:Class="UnityMvvmTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="300" Width="500">
<Grid>
<Label x:Name="myLabel" Content="{Binding MyText}"/>
</Grid>
</Window>
MainWindow.xaml.cs
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
public MainWindow(IMainViewModel theViewModel)
: this()
{
this.DataContext = theViewModel;
}
}
MainViewModel.cs
public class MainViewModel : ViewModelBase, IMainViewModel
{
private readonly IDataService _dataService;
public MainViewModel(IDataService dataService)
{
_dataService = dataService;
if (IsInDesignMode)
{
// Code runs in design time data.
MyText = "Design Data";
}
else
{
// Code runs "for real"
MyText = _dataService.GetName();
}
}
public string MyText { get; set; }
}