2017-03-20 3 views
2

Ich arbeite mich durch ein altes Caliburn Micro-Tutorial (here). Ich bin bei Teil 2 (here). Ich habe es geschafft, App.xaml und AppBootstrapper.cs so zu aktualisieren, dass sie mit 3.0.3 und WPF kompatibel sind (wie im Abschnitt "WPF" auf der Seite "Dokumentation" beschrieben). Ich verwende VS 2013.Caliburn Micro - Text in TextBox wird nicht angezeigt

Das Tutorial zeigt die App mit dem Wert '50' nach der Initialisierung angezeigt. Meine App zeigt nur das:

enter image description here

Hier ist der Code so weit:

App.xaml

<Application 
xmlns:local="clr-namespace:CaliburnMicroApp" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
x:Class=" CaliburnMicroApp.App"> 
<Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary> 
       <local:AppBootstrapper x:Key="bootstrapper" /> 
      </ResourceDictionary> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Application.Resources> 

AppViewModel.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using Caliburn.Micro; 

namespace CaliburnMicroApp.ViewModels 
{ 
    class AppViewModel : PropertyChangedBase 
    { 
     private int _count = 50; 

     private int Count 
     { 
      get { return _count; } 
      set 
      { 
       _count = value; 
       NotifyOfPropertyChange(() => Count); 
       NotifyOfPropertyChange(() => CanIncrementCount); 
      } 
     } 

     public void IncrementCount() 
     { 
      Count++; 
     } 

     public bool CanIncrementCount 
     { 
      get { return Count < 100; } 
     } 
    } 
} 

AppView.xaml

<UserControl x:Class="CaliburnMicroApp.Views.AppView" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"> 
    <Grid Width="300" Height="300" Background="LightBlue"> 
     <RepeatButton Name="IncrementCount" Content="Up" Margin="15" VerticalAlignment="Top" /> 
     <TextBlock Name="Count" Margin="20" FontSize="150" VerticalAlignment="Center" HorizontalAlignment="Center" /> 
    </Grid> 
</UserControl> 

AppBootstrapper.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using Caliburn.Micro; 
using CaliburnMicroApp.ViewModels; 
using System.Windows; 


namespace CaliburnMicroApp 
{ 
    public class AppBootstrapper : Caliburn.Micro.BootstrapperBase 
    { 
     public AppBootstrapper() 
     { 
      Initialize(); 
     } 

     protected override void OnStartup(object sender, StartupEventArgs e) 
     { 
      DisplayRootViewFor<AppViewModel>(); 
     } 
    } 
} 

Antwort

5

Ihre Count-Eigenschaft in Ihrem AppViewModel zu öffentlichen ändern.

+2

Was für ein Dummkopf ... danke Ricardo – TheLastGIS

+1

Eheh, kein Problem. Manchmal sind das die Fehler, die wir als Entwickler festhielten;) –

Verwandte Themen