添付のコマンドとロジックを使用して、同じ方法で常に再利用される一連のコントロールがあります。すべての共通コントロールとロジックを保持するユーザーコントロールを作成することにしました。NAMEDコンテンツを含むWPF UserControlを作成する方法
ただし、名前を付けることができるコンテンツを保持できるコントロールも必要です。私は次のように試しました:
<UserControl.ContentTemplate>
<DataTemplate>
<Button>a reused button</Button>
<ContentPresenter Content="{TemplateBinding Content}"/>
<Button>a reused button</Button>
</DataTemplate>
</UserControl.ContentTemplate>
しかし、ユーザーコントロール内に配置されたコンテンツの名前は付けられません。私はbuttonNameを削除すると、それはコンパイル
Cannot set Name attribute value 'buttonName' on element 'Button'. 'Button' is under the scope of element 'UserControl1', which already had a name registered when it was defined in another scope.
、しかし私は名前のことができるようにする必要があります:私は次のエラーが表示さ
<lib:UserControl1>
<Button Name="buttonName">content</Button>
</lib:UserControl1>
:たとえば、私は、次のようにコントロールを使用する場合コンテンツ。どうすればこれを達成できますか?
これは偶然のことです。私はちょうどこの質問をしようとしていた!私は同じ問題を抱えています。一般的なUIパターンをUserControlに分解するが、コンテンツUIを名前で参照したい。 – mackenir
ResourceDictionaryの方法はどうですか?その中にDataTemplateを定義します。または、BasedOnキーワードを使用してコントロールを継承します。 WPFでコードビハインドUIを実行する前に私が従うちょうどいくつかのパス... –
この男は[解決策]を見つけました(http://blog.bluecog.co.nz/archives/2007/08/27/wpf-cannot -set-name-attribute /)を使用して、カスタムコントロールのXAMLファイルを削除し、カスタムコントロールのUIをプログラムでビルドします。この[ブログの投稿](http://rrelyea.spaces.live.com/Blog/cns!167AD7A5AB58D5FE!2130.entry?wa=wsignin1.0&sa=752255111)は、この件についてもっと言いたいことがあります。 – mackenir