2010-11-18 6 views
1

私は、テキスト(たとえば名前)を入力できるテキストボックスに基づいてカスタムのusercontrolを作成したいのですが、その名前はカスタムアイテムに変換されますそれらを削除するためのXボタンなど)。これは私が希望です:WPF textbox usercontrol単純なテキストではなくカスタムアイテムを含む

alt text

どのように私はこれを達成することができますか?テキストをカスタムアイテムで置き換えることはできますか? ありがとうございます。

答えて

1

これは、テキストボックスのchanging the control templateで行うことができます。 Usercontrolを使用しているので、実際に行う必要があるのは、テキストボックスの境界線を削除し、ユーザコントロールの周りにBorderを追加し、ボタン+境界線なしのテキストボックスをDockPanelまたはStackPanelに配置するだけです。

1

リストビューにEmailsをバインドし、電子メールとボタンの両方を持つItemTemplateを与えます。

各ボタンを電子メールを削除するコマンドにバインドし、削除する電子メールをコマンドパラメータとして渡します。

TextBoxをプロパティ(たとえば、NewEmail)にバインドします。設定者にNewEmailを追加してEmailsの基になるコレクションに別のメールを追加し、PropertyChangedNewEmailと通知します。 getterは常に空の文字列を返す必要があります。

TextBoxが変更されると(フォーカスを失うことによってデフォルトになります)、セッターは電子メールに電子メールを追加し、テキストボックスをクリアします。 Emailsは、返されるプロパティである必要がありますObservableCollection<Email>

これにより、新しい電子メールが実際の電子メールアドレスであることを検証するようなこともできます。

時間があればいくつかの例を更新します。これがあなたを助けてくれることを願っています。

編集:テキストボックスのUpdateSourceTrigger=PropertyChangedを変更して、セミコロンなどの新しい電子メールに反応させることもできます。これにより、フォーカスが失われるのではなく、テキストが変更されるたびにプロパティが更新されます。