如何解决如何在Xamarin.Forms中的运行时更改DataTemplate样式?
我正在创建一个简单的聊天应用程序。我有一个CollectionView
来显示所有消息。我想做的是,当消息来自运行时的发件人时,更改DataTemplate
的样式。框的位置从左到右,颜色有所变化。我该怎么办?
这是我的代码-
<CollectionView x:Name="ChatViewBox"
Grid.Row="0"
ItemsUpdatingScrollMode="KeepLastItemInView">
<CollectionView.ItemTemplate>
<DataTemplate x:DataType="models:ChatModel">
<!-- I want to change this grid's bg color-->
<Grid>
<Label Text="{Binding Sender}"
Margin="30,0"
TextColor="Black"
FontSize="Caption"/>
<Label Text="{Binding Message}"
BackgroundColor="#F7F7F7"
TextColor="#6264a7"
Margin="30,20,30,45"
Padding="15"
FontSize="Default"/>
<Label Text="{Binding Time}"
Margin="0,30"
HorizontalOptions="End"
VerticalOptions="End"
TextColor="Gray"
FontSize="Micro"/>
</Grid>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
public ChatHub(string key,string Name)
{
InitializeComponent();
this.key = key;
this.Name = Name;
chats = new ObservableCollection<ChatModel>();
ChatViewBox.ItemsSource = chats;
chats.CollectionChanged += Chats_CollectionChanged;
ChatViewBox.ChildAdded += ChatViewBox_ChildAdded;
}
private void ChatViewBox_ChildAdded(object sender,ElementEventArgs e)
{
//Do something
}
private void Chats_CollectionChanged(object sender,NotifyCollectionChangedEventArgs e)
{
if (chats[e.NewStartingIndex].SenderKey == key)
{
// Do something.
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。