[英]How to bind list view with chat data in Xamarin.forms xaml
我無法綁定ListView:使用設計背后的代碼時,我可以成功綁定列表視圖,但是我想在XAML中更改設計,但是現在我無法綁定列表視圖,數據成功發送到服務器,但無法綁定listbiew 。
XAML: <ListView Grid.Row="0" ItemsSource="{Binding TextContainer}" x:Name="ListView"
SeparatorVisibility="None">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout VerticalOptions="FillAndExpand" Orientation="Horizontal" Padding="10">
<Label Text="{Binding Text}" YAlign="Center" Font="Large" TextColor="Red" />
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
CS:
private ObservableCollection<MessageText> TextContainer = new ObservableCollection<MessageText>();
public ListView listView = new ListView();
public event OnMessageSent MessageSent;
public delegate void OnMessageSent(string message);
public Chat()
{
MessageSent += (message) =>
{
var text= "Me: " + message;
TextContainer.Add(new MessageText { Text = text });
SignalRClient.SendMessage(UsernameTextbox.Text, message);
};
SignalRClient.OnMessageReceived += (username, message) => {
if (username == UsernameTextbox.Text)
{
}
else
{
var cc = username + ": " + message;
TextContainer.Add(new MessageText { Text = cc });
}
};
}
public void AddText(string text)
{
TextContainer.Add(new MessageText { Text = text });
}
private void EnterButton_Clicked(object sender, EventArgs e)
{
try
{
var messageSent = MessageSent;
if (messageSent != null)
messageSent(Messagebox.Text);
Messagebox.Text = string.Empty;
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex);
}
}
}
public class MessageText
{
public string Text { get; set; }
}
}
我正在使用聊天應用程序。 並且也無法綁定本地消息
您的TextContainer
字段應該是公共屬性。
更改此:
private ObservableCollection<MessageText> TextContainer = new ObservableCollection<MessageText>();
至:
public ObservableCollection<MessageText> TextContainer { get; set; } = new ObservableCollection<MessageText>();
請注意,我是如何將private
更改為public
並添加{ get; set; }
{ get; set; }
{ get; set; }
表示這是一個具有自動獲取器和設置器的屬性。
有關數據綁定的更多信息可以在新的微軟文檔頁中找到此 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.