3

次のコードがあります

<Window.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="UI/ResourceDirectory.xaml"/>
        </ResourceDictionary.MergedDictionaries>
        <DataTemplate DataType="{x:Type vm:MainWindowViewModel}">
            <local:MainWindow></local:MainWindow>
        </DataTemplate>
    </ResourceDictionary>

</Window.Resources>

そして、次のエラーが発生しています

スタイルにウィンドウを配置できません

この答えを見つけました。

メイン ウィンドウで必要なすべての UI コーディングを行いましたが、対応する ViewModel に接続することはできません (別のプロジェクトに配置し、その参照を使用しています)。

だから私の質問は、「なぜこれができないのですか?」、「ウィンドウ コントロールを ViewModel に接続するにはどうすればよいですか?」、「代わりに UserControl を使用する必要がありますか?」です。

4

2 に答える 2

0

あるウィンドウを別のウィンドウの中に入れようとしていますが、それは不可能です。View と ViewModel の接続ははるかに簡単ですが、プロジェクトの構造によって異なります。Windowたとえば、コンストラクターで設定できます。

public partial class MainWindow : Window    
{
    public MainWindow ()
    {
        this.DataContext = new MainWindowViewModel();
        InitializeComponent();
    }
}

あなたが取ろうとしているアプローチは機能せWindowsず、ViewModels 自体を XAML に配置する場合にのみ役立ちます。

于 2013-02-07T06:46:45.553 に答える
0

ビューモデルをビューに接続するには、xaml コードで次のことを行う必要があります。

<Window.DataContext>
   <viewModel:MainWindowViewModel/>
</Window.DataContext>

viewModel は名前空間です。

xmlns:viewModel="clr-namespace:TestProject.ViewModel"

ビューのコード ビハインドでビューモデルを設定しないでください。

于 2013-02-07T06:52:26.790 に答える