J'essaie de répliquer le système de messagerie de Windows Phone, mais avec un autre service. J'utilise le contrôle Chat Bubble du Coding4Fun Toolkit for Windows Phone pour ce faire.Comment accéder à une propriété d'une autre classe/d'un contrôle, à partir d'une classe personnalisée?
(Capture d'écran de la commande Bubble Chat):
Le code que je suis venu avec ci-dessous fonctionne très bien, mais la propriété ChatBubbleDirection dans mon DataTemplate produit une erreur quand il est lié aux données. C'est parce que je ne sais pas comment utiliser une propriété d'une autre classe (si cela a du sens?). Comment cela serait-il fait? Je ne pouvais pas le comprendre ...
La propriété XAML devrait ressembler à ceci:
ChatBubbleDirection="LowerLeft"
Comme vous pouvez le deviner, cela permettra de déterminer la direction de la petite flèche du ChatBubble.
Voici le code de la classe de message:
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; }
}
Et voici le code pour le bouton événement click:
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);
}
Et voici le 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>
Quelqu'un avoir une idée de ce que je devrais écrire dans la classe Message? Je ne sais vraiment pas comment expliquer mon problème. J'ai essayé d'étendre la classe ChatBubble dans ma classe Message (comme vous pouvez le voir), mais sans succès.
Merci d'avance pour toute aide!
On dirait que j'étais trop compliquer les choses beaucoup trop ... Une simple chaîne était tout ce qu'il fallait pour que ça marche! Merci mec: D –