0

と の 2 種類のメッセージがServerMessageありUserMessageます。このメッセージを作成するための生の文字列があります。

サーバー メッセージの例を次に示します。

:choopa.nj.us.dal.net NOTICE AUTH :*** Looking up your hostname...

ユーザー メッセージの例を次に示します。

:Abc!Abc@2001:123.4234.123.423 PRIVMSG #channelname :hello

最初に、メッセージの部分や時間などの基本を使用して RawMessage を作成します。

RawMessageしかし、私はこれを自分のにバインドしてWPF UIおり、UI のさまざまな部分で とは異なる情報が必要になりRawMessageます。

すべてを表示するサーバー ウィンドウの 1 つServerMessagesは、すべてがサーバーから送信されたものであるため、メッセージの送信元であるユーザーを気にしません。

ただし、個々のチャネル ウィンドウはユーザーを認識する必要があります。ServerMessageそのため、サーバー 1 をタイプにバインドし、チャネル ウィンドウをタイプにバインドすることを余儀なくされていUserMessageます。

問題は、 を作成するときですRawMessage。その時点で、それがどのような種類かを確認し、それを破棄して他の 2 つのタイプのいずれかを作成し、それをバインドしますか?

または、これに対するよりエレガントなポリモーフィック ソリューションはありますか?

4

2 に答える 2

0

何を探しているのか正確にはわかりませんが、私の場合、メッセージの基本型を作成し、これを継承するさまざまなメッセージ クラスを作成します。

をビュー モデルListBoxの のコレクションにバインドすると、型に基づいて適切なテンプレートを選択する があります。つまり、各テンプレートで、特定のメッセージ クラスに存在することがわかっているプロパティを参照できます...List<Message>DataTemplateSelector

于 2013-08-16T10:29:55.057 に答える