WPF Binden Fenstertitel in " ViewModel-Eigenschaft

Ich versuche mich zu binden, einen Fenstertitel, um das ViewModel hat eine Title-Eigenschaft. Unten ist das Hauptfenster XAML:

<Window x:Class="MyProject.View.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:vm="clr-namespace:MyProject.ViewModel;assembly=MyProject.ViewModel"
        Title="{Binding Path=Title}" Height="350" Width="525" DataContext="{Binding Source={StaticResource mainWindowViewModel}}">
    <Window.Resources>
        <vm:MainWindow x:Key="mainWindowViewModel"/>
    </Window.Resources>

...

</Window>

Wenn ich versuche zu laufen, bekomme ich die folgende Ausnahme "Geben den Wert auf 'System.Windows.StaticResourceExtension' hat eine Ausnahme ausgelöst. Die Zeilennummer und position, zeigen Sie auf die DataContext-Eigenschaft, und die innere Ausnahme, die besagt, "kann Nicht finden die Ressource mit dem Namen mainWindowViewModel.

Unten ist der code für die View-Model:

namespace MyProject.ViewModel
{
    public class MainWindow : INotifyPropertyChanged
    {
        #region Fields

        private const string TitlebarPrefixString = "My Project";
        private string title = TitlebarPrefixString;

        public string Title {
            get
            {
                return this.title;
            } //End getter
            set
            {    
                this.title = value;
                OnPropertyChanged("Title");
            } //End setter
        } //End property

        protected virtual void OnPropertyChanged(string propertyName)
        {
            PropertyChangedEventHandler handler = PropertyChanged;
            if (handler != null)
            {
                handler(this, new PropertyChangedEventArgs(propertyName));
            } //End if
        } //End method


        public event PropertyChangedEventHandler PropertyChanged;

    } //End class
} //End namespace

Meine Theorie ist, dass die Ressourcen geladen werden, nachdem der Versuch, zu binden, das Eigentum an der Immobilie. Wenn die exception geworfen wird, die Ressourcen-Eigenschaft für das Fenster ist leer.

Ist die einzige Lösung für den DataContext in der Code-Behind? Kann ich diese zu arbeiten, aber ich würde lieber halten Sie es in XAML.

  • Sie konnte immer bewegen Sie Ihre VM-Ressource-app.xaml wenn das zutreffend. Auf einem sidenote bitte name VM-Klassen als SomethingViewModel und nicht nur den gleichen Namen wie die Ansicht und die Verwendung von namespace-Klassen zu unterscheiden. Es ist nur wirklich seltsam und freaky
  • Josh Smith war ein Beispiel dafür will ich sehen, ob ich es lokalisieren können, im Grunde, wenn das datatemplate, das angewendet wurde, die in der XAML-der Titel wurde angewandt, auch..
InformationsquelleAutor Tim | 2013-06-05
Schreibe einen Kommentar