2009-06-12 8 views
1

DataTemplateから新しいクラスを派生させ、それをDataTemplateの代わりに使用するにはどうすればよいですか?例えばDataTemplateから新しいクラスを派生させてDataTemplateの代わりに使用するにはどうすればいいですか?

、C#で:XAMLで次に

public class DerivedDataTemplate : DataTemplate 
{ 
} 

<local: DerivedDataTemplate DataType="{x:Type local:SomeType}"> 
    <Grid> 
     ... UI here ... 
    </Grid> 
</local:DerivedDataTemplate> 

私がフォロー例外が生成され、私の派生データテンプレートクラスを使用しよう:

システム。 Windows.Markup.XamlParseExceptionが処理されませんでした Message = "'Grid'オブジェクトは 'DerivedDataTemplate'に追加できません 'System.Windows.Controls.Grid'型のオブジェクトはコンバートできませんdを押して 'System.Windows.FrameworkElementFactory'と入力します。

誰もこの例外を回避し、DataTemplateから派生したクラスを正常に使用する方法を知っていますか?

+0

なぜあなたはDataTemplateから継承していますか? – micahtan

+0

私は基本的に特別な種類のデータテンプレートを用意して、余分なデータを追加し、リソース検索とテンプレートのインスタンス化に組み込みのルールを使用できるようにしたかったのです。私は別のやり方でやりましたが、DataTemplateから継承する方が簡単でした。 –

答えて

0

私のために働いた(私はローカルタイプを作成しなかったが)。あなたのコードをコピーし、XAML宣言のlocal:とDerivedDataTemplateの間のスペースを削除しなければならなかった。ブレンド3ではそれは私のために実行されません、私はブレンド2についてはわかりません。

+0

スペースはそれを置いたときのちょうどタイプミスで、私の実際のコードにはそのエラーはありませんでした。だから、それはあなたのために働いたと言うとき、あなたは正確に何を意味しますか?次の文では、それはあなたのために働かなかったと言われるようです!私はVisual Studio 2008 Expressを使用しています。 –

+0

申し訳ありませんが、私は明確ではありませんでした:あなたのコードはスペースなしで私のために働いた。 * Blend 3で実行さえしない領域もあります。 –

関連する問題