Windows Phone のメッセージング システムを複製しようとしていますが、別のサービスを使用しています。これを行うために、 Coding4Fun Toolkit for Windows Phoneのチャット バブル コントロールを使用しています。
(チャット バブル コントロールのスクリーンショット):
以下に思いついたコードは正常に動作しますが、データ バインド時にデータ テンプレート内の ChatBubbleDirection プロパティがエラーを生成します。これは、別のクラスのプロパティを使用する方法がわからないためです (これが理にかなっている場合)。これはどのように行われますか?私はそれを理解できませんでした...
XAML プロパティは次のようになります。
ChatBubbleDirection="LowerLeft"
ご想像のとおり、これによって ChatBubble の小さな矢印の方向が決まります。
メッセージ クラスのコードは次のとおりです。
using Coding4Fun.Phone.Controls.Toolkit.Common;
public class Message : Coding4Fun.Phone.Controls.ChatBubble
{
public string Text { get; set; }
public string SendingDate { get; set; }
//public Coding4Fun.Phone.Controls.ChatBubble { get; set; }
}
ボタン クリック イベントのコードは次のとおりです。
private void Button_Click(object sender, RoutedEventArgs e)
{
LBmessages.ItemsSource = messages;
Message m = new Message();
m.SendingDate = "Today";
m.Text = "This is a message";
//m.direction = (Coding4Fun.Phone.Controls.ChatBubble).ChatBubbleDirectionProperty???
messages.Add(m);
}
XAML は次のとおりです。
<StackPanel x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<ScrollViewer Height="369" Name="scrollviewer1" Width="500">
<ListBox Name="LBmessages" Height="250">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Width="456">
<cc:ChatBubble Width="500" Margin="0,0,0,20" ChatBubbleDirection="{Binding direction}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="40"></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Text="{Binding Text}" TextWrapping="Wrap" Width="430"></TextBlock>
<TextBlock Grid.Row="1" HorizontalAlignment="Right" Text="{Binding SendingDate}"></TextBlock>
</Grid>
</cc:ChatBubble>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</ScrollViewer>
</StackPanel>
Message クラスに何を書くべきか、誰にも分かりませんか? 私の問題をこれ以上説明する方法が本当にわかりません。Message クラス内で ChatBubble クラスを拡張しようとしましたが (ご覧のとおり)、役に立ちませんでした。
助けてくれてありがとう!