私の目標は、Datatemplateと2つのTextBlock(ユーザーメッセージテキストとユーザー名)を含むリストボックスに表示することです。
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding MessageText}"/>
<TextBlock Text="{Binding UserName}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
json応答からリストに生成および解析される2つの別個のクラスがあります。
Message
{
int MessageID;
string MessageText;
int UserID;
}
User
{
int UserID;
string UserName;
}
List<Message> Messages;
List<User> Users;
クラスからのユーザーメッセージの横にあるUserName
クラスからxamlにバインドするにはどうすればよいですか?どちらのクラスも同じです。User
Message
UserId
もちろん、簡単な方法は、クラスに追加のプロパティUserName
を作成し、UserクラスからプロパティをMessage
渡してバインドすることですが、これは繰り返しの作業であり、悪い習慣のようです。UserName
Message
頭に浮かんだ解決策の1つは、ある種の値コンバーターを使用してから、UserId
やユーザーリストなどの追加のパラメーターを渡すことですが、それは一種のハックのようです。結果?