[英]ListBox showing collection name instead of value
我在Windows Phone 8.1項目上使用C#,我正在使用SQLite存儲一些遠程連接數據,例如IP,名稱和端口,以對MPC進行遠程控制。
XAML具有一個ListBox元素,它應該在每個項目中顯示連接IP,但是它顯示了它的完整名稱空間,沒有有效值。
我可能還不了解數據綁定如何與Windows Phone一起使用,並且歡迎任何方向。 下面是類和XAML:
namespace RemotyMPC81.Models
{
class Connection
{
[PrimaryKey, AutoIncrement]
public int ID { get; set; }
private string _Host;
public string Host
{
get
{
return this._Host;
}
set
{
this._Host = value;
}
}
[MaxLength(20)]
public string Name { get; set; }
public string Port { get; set; }
public async static Task<ObservableCollection<Connection>> FetchAllAsList()
{
var rawList = await DatabaseManagement.ConnectionDb().Table<Connection>().ToListAsync();
ObservableCollection<Connection> connections = new ObservableCollection<Connection>();
foreach (Connection connection in rawList){
connections.Add(connection);
}
return connections;
}
public async static Task Insert(Connection connection)
{
await DatabaseManagement.Insert(connection);
}
}
}
<Grid>
<ListView x:Name="LstConnection" HorizontalAlignment="Left" Height="486" Margin="10,84,0,0" VerticalAlignment="Top" Width="380" ItemsSource="{Binding}">
<ListViewItem>
<TextBlock Text="{Binding Path=Host, Mode=OneWay}" Width="380" Height="39"></TextBlock>
</ListViewItem>
</ListView>
</Grid>
/// <summary>
/// Invoked when this page is about to be displayed in a Frame.
/// </summary>
/// <param name="e">Event data that describes how this page was reached.
/// This parameter is typically used to configure the page.</param>
protected override async void OnNavigatedTo(NavigationEventArgs e)
{
ObservableCollection<Connection> connections = await Connection.FetchAllAsList();
LstConnection.ItemsSource = from conn in connections select conn;
}
您將ListViewItem直接放置在ListBox中。 您實際要做的是設置ItemsTemplate
<ListView ...>
<ListView.ItemsTemplate>
<DataTemplate>
<TextBlock ... />
</DataTemplate>
</ListView.ItemsTemplate>
</ListView>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.