1. ホーム
  2. .net

[解決済み] XAMLでDataContextプロパティを使用してウィンドウにViewModelを設定するにはどうすればよいですか?

2022-12-19 05:27:45

質問

質問はほとんどすべてを物語っています。

私はウィンドウを持っていて、完全な名前空間を使用してDataContextをViewModelに設定しようとしましたが、私は何か間違ったことをしているようです。

<Window x:Class="BuildAssistantUI.BuildAssistantWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    DataContext="BuildAssistantUI.ViewModels.MainViewModel">

どのように解決するのですか?

他の人が提供した解決策 (これは良い、正しい) に加えて、XAML で ViewModel を指定しながらも、特定の ViewModel を View から分離する方法があります。 これらを分離することは、分離されたテストケースを書きたいときに便利です。

App.xamlで。

<Application
    x:Class="BuildAssistantUI.App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:BuildAssistantUI.ViewModels"
    StartupUri="MainWindow.xaml"
    >
    <Application.Resources>
        <local:MainViewModel x:Key="MainViewModel" />
    </Application.Resources>
</Application>

MainWindow.xamlの中で。

<Window x:Class="BuildAssistantUI.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    DataContext="{StaticResource MainViewModel}"
    />