3

どうすればこれを機能させることができますか?

public partial class MyWindow : View<MyViewModel>
{
}

ここで、ビューは次のように定義されます

public class View<T> : Window where T : IViewModel, new()
{
}

XAML:

<local:View
x:Class="Project.MyWindow"
x:TypeArguments="ViewModels:MyViewModel"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" 
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions" 
xmlns:ViewModels="clr-namespace:Mynamespace.ViewModels;assembly=Mynamespace.ViewModels"
xmlns:local="clr-namespace:Project"
>

このエラーが表示されます...名前のビューは名前空間プロジェクトに存在しません...もちろん存在します。

そして、私は本当に私を混乱させるこのエラーを受け取ります...プロパティ「TypeArguments」は「http://schemas.microsoft.com/winfx/2006/xaml」名前空間に存在しません...もちろん存在します。

wpf でジェネリックをウィンドウの基本クラスとして使用する方法についての手がかりはありますか?

4

1 に答える 1

5

この質問に対する答えは、xaml でジェネリックを使用しないことです。常により良い方法または回避策があります。元の投稿のコメントを参照してください。

編集!

Micky Duncan (上記のコメントを参照) のおかげで、この質問に対する正しい答えは、次の 2 つのリンクを調査することで見つけることができます。

http://msdn.microsoft.com/en-us/library/ms741843(v=vs.110).aspx http://www.codeproject.com/Articles/37317/Generic-Support-In-XAML

于 2013-07-29T11:28:57.390 に答える