私は、テキスト(たとえば名前)を入力できるテキストボックスに基づいてカスタムのusercontrolを作成したいのですが、その名前はカスタムアイテムに変換されますそれらを削除するためのXボタンなど)。これは私が希望です:WPF textbox usercontrol単純なテキストではなくカスタムアイテムを含む
どのように私はこれを達成することができますか?テキストをカスタムアイテムで置き換えることはできますか? ありがとうございます。
私は、テキスト(たとえば名前)を入力できるテキストボックスに基づいてカスタムのusercontrolを作成したいのですが、その名前はカスタムアイテムに変換されますそれらを削除するためのXボタンなど)。これは私が希望です:WPF textbox usercontrol単純なテキストではなくカスタムアイテムを含む
どのように私はこれを達成することができますか?テキストをカスタムアイテムで置き換えることはできますか? ありがとうございます。
これは、テキストボックスのchanging the control templateで行うことができます。 Usercontrol
を使用しているので、実際に行う必要があるのは、テキストボックスの境界線を削除し、ユーザコントロールの周りにBorder
を追加し、ボタン+境界線なしのテキストボックスをDockPanel
またはStackPanel
に配置するだけです。
リストビューにEmails
をバインドし、電子メールとボタンの両方を持つItemTemplateを与えます。
各ボタンを電子メールを削除するコマンドにバインドし、削除する電子メールをコマンドパラメータとして渡します。
TextBoxをプロパティ(たとえば、NewEmail
)にバインドします。設定者にNewEmail
を追加してEmails
の基になるコレクションに別のメールを追加し、PropertyChanged
にNewEmail
と通知します。 getterは常に空の文字列を返す必要があります。
TextBoxが変更されると(フォーカスを失うことによってデフォルトになります)、セッターは電子メールに電子メールを追加し、テキストボックスをクリアします。 Emails
は、返されるプロパティである必要がありますObservableCollection<Email>
これにより、新しい電子メールが実際の電子メールアドレスであることを検証するようなこともできます。
時間があればいくつかの例を更新します。これがあなたを助けてくれることを願っています。
編集:テキストボックスのUpdateSourceTrigger=PropertyChanged
を変更して、セミコロンなどの新しい電子メールに反応させることもできます。これにより、フォーカスが失われるのではなく、テキストが変更されるたびにプロパティが更新されます。