Чтобы использовать вашу ViewModel, создайте свой ListBox в XAML и свяжите ItemsSource с коллекцией элементов, а затем определите шаблон того, как должен выглядеть каждый элемент - вот хорошее место для начала: http://msdn.microsoft.com/en-us/library/ms752347.aspx#binding_to_collections. Как только вы используете этоТаким образом, вы получите преимущества при поддержке вашего кода (даже если ваше представление меняется, и вам просто необходимо обновить свой пользовательский интерфейс), а также преимущество отделения дизайна от вашего кода.
Что на самом деле происходит, так это ваш XAMLвыполняется и запускается с помощью вызова метода InitializeComponent () в конструкторе вашего MainWindow.
Если вы хотите использовать код позади вместо XAML, вы можете назначить обработчик событию Window.Loaded - будьте осторожны, если этоможет встречаться несколько раз, поэтому используйте флаг, чтобы увидеть, что он еще не запущен.
Хотя есть преимущества использования MVVM - я не принимаю его, как все в XAML - я бы определил свой ListBox, шаблон и т. д.в XAML, но если вы хотите условное связывание или что-то другое, мне легчеде такие как:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
if (!this.hasLoaded)
{
this.hasLoaded = true;
DirectoryInfo di = new DirectoryInfo("."); // "." is the current dir we are in
FileInfo[] files = di.GetFiles();
List<string> fileNames = new List<string>(files.Length);
foreach(FileInfo fi in files)
fileNames.Add(fi.Name);
this.listBox1.ItemsSource = fileNames;
}
}