, чтобы я мог получить значение foreach для метки в словаре.
Возможно, вы можете использовать код для получения каждого значения из словаря следующим образом:
Dictionary<int, string> dict = new Dictionary<int, string>(){{1,"One"},{2, "Two"},{3,"Three"}};
for (int i = 0; i < dict.Count; i++)
{
Console.WriteLine("Key: {0}, Value: {1}", dict.Keys.ElementAt(i), dict[ dict.Keys.ElementAt(i)]);
}
Однако это не может быть отображено в Label
или ScrollView
точно.
Я предлагаю использовать ListView для отображения списка l oop, ObservableCollection<Model>
можно использовать как ItemSource
для ListView
. Тогда он будет легко отображаться в каждой ячейке списка.
Вы можете создать Модель класс:
public class Employee
{
public int DisplayID {get; set;}
public string DisplayName {get; set;}
}
Затем в ViewModel можно установить пример данных:
ObservableCollection<Employee> employees = new ObservableCollection<Employee>();
public ObservableCollection<Employee> Employees { get { return employees; }}
public ViewModel()
{
// is set and the UI will react to changes
employees.Add(new Employee{ DisplayID = 1 , DisplayName="Rob Finnerty"});
employees.Add(new Employee{ DisplayID = 2 , DisplayName="Bill Wrestler"});
employees.Add(new Employee{ DisplayID = 3 , DisplayName="Dr. Geri-Beth Hooper"});
employees.Add(new Employee{ DisplayID = 4 , DisplayName="Dr. Keith Joyce-Purdy"});
employees.Add(new Employee{ DisplayID = 5 , DisplayName="Sheri Spruce"});
employees.Add(new Employee{ DisplayID = 6 , DisplayName="Burt Indybrick"});
}
Теперь в Xaml , добавить ListView в ContentPage:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:constants="clr-namespace:XamarinFormsSample;assembly=XamarinFormsXamlSample"
x:Class="XamarinFormsXamlSample.Views.EmployeeListPage"
Title="Employee List">
<ListView x:Name="EmployeeView"
ItemsSource="{Binding Employees}">
<ListView.ItemTemplate>
<DataTemplate>
<TextCell Text="{Binding DisplayName}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ContentPage>
Не забудьте связать ItemSource в ContenPage.cs :
public MainPage()
{
ViewModel viewmodel = new ViewModel();
EmployeeView.ItemsSource = viewmodel.employees ;
}
Здесь вы можете рассмотреть ViewModel
, так как Dictionary
, employees
содержит данные Key-Value в каждой ячейке. Кроме того, вы можете добавить дополнительные свойства в Employee
, тогда ваша ячейка будет отображать гораздо больше стилей. О пользовательских данных в списке просмотра, вы можете взглянуть на этот do c, чтобы узнать больше об этом. * 1 043 *
============================= == Обновление ========================================
Если вам нужен горизонтальный просмотр списка, вы можно использовать CollectionView для его реализации следующим образом:
<CollectionView ItemsSource="{Binding Monkeys}">
<CollectionView.ItemsLayout>
<LinearItemsLayout Orientation="Horizontal" />
</CollectionView.ItemsLayout>
<CollectionView.ItemTemplate>
<DataTemplate>
...
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
Существует образец для справки.