0

XAML で部分的に定義され、コードで部分的に定義されたクラスがあります。

ファイルElementResource.xamlは次のようになります。

<ResourceDictionary  x:Class="TestElement.Views.ElementResource"
                     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                     xmlns:local="clr-namespace:TestElement.Views"
                     xmlns:vm="clr-namespace:TestElement.ViewModels">

    <DataTemplate x:Key="TestTemplate"  DataType="{x:Type vm:TestElementViewModel1}">
    </DataTemplate>

</ResourceDictionary>

クラス *ElementResource" の残りの部分は、ファイルElementResource.xaml.cs内のコードで次のように定義されます。

using System.ComponentModel.Composition;
using System.Windows;

namespace TestElement.Views
{
    [Export(typeof(ResourceDictionary))]
    public partial class ElementResource : ResourceDictionary
    {
    }
}

何らかの理由で、XAML で定義されたクラス パーツが "コード ビハインド" で認識されません。

認識されない

また、XAML で定義された DataTemplate は、初期化後にリソース ディクショナリに含まれません。

ビルドと再構築、 Ctrl+Shift+sを試し、部分クラスの要件を再確認しまし

私は何が欠けていますか??

4

3 に答える 3

4

わかりました: 別のプロジェクトから xaml ファイルをコピーして貼り付け、そのファイルを現在のプロジェクトに貼り付けると、BuildActionプロパティがnoneに変更されましたが、気付かなかったのです... Pageに切り替えると、xaml部分が認識されます...

助けてくれてありがとう、みんな!

于 2013-01-10T15:32:37.773 に答える
1

XAML で、ResourceDictionary の前に「local:」がありませんか?

<local:ResourceDictionary  x:Class="TestElement.Views.ElementResource"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:TestElement.Views"
    xmlns:vm="clr-namespace:TestElement.ViewModels">

    <DataTemplate x:Key="TestTemplate"  DataType="{x:Type vm:TestElementViewModel1}">
    </DataTemplate>

</local:ResourceDictionary>
于 2013-01-10T14:47:23.937 に答える
1

x:Class="TestElement.Views.ElementResource"

これは完全なアセンブリ名ですか? すべてのパーツを追加してみると、認識されるはずです。

于 2013-01-10T14:41:10.767 に答える