I Предполагаю, что данный пример работает и работает должным образом (Atleast с 2 элементами)
Просмотр Код .
Предполагая, что вы хотите показать все 30 сообщений в виде списка.
<ListView ItemsSource="{Binding MessagesArray}"/>
Также вы должны правильно установить DataContext, Комментарий нижеесли вам нужна помощь
Просмотр кода модели.
Мы используем ObservableCollection вместо массива,Поскольку чистые массивы не поддерживают надлежащие обязательные функции.
private ObservableCollection<string> _messagesArray;
public ObservableCollection<string> MessagesArray
{
get { return _messagesArray; }
set { SetProperty(ref _messagesArray, value); }
}
Назначение значений
MessagesArray = new ObservableCollection<string>();
vm.MessagesArray.Add("A");
vm.MessagesArray.Add("B");
В коде присвоения MessagesArray = new ObservableCollection<string>();
назначается новый объект ObservableCollection
из String
Если вы новичок в ObservableCollection
, подумайте об этом как обертка для string[]
, но на самом деле это не так * Метод 1045 *
SetProperty
будетсообщите XAML
View, что новая коллекция прибыла, поэтому пользовательский интерфейс будет повторно отображать список.
Когда вы вызываете vm.MessagesArray.Add("B");
внутреннюю логику внутри метода, Add
сообщит XAML
Вид, что новый элемент добавлен в ObservableCollection
, так что представление может перерисовать ListView
с новым элементом..
Обновление 27 октября 2018
Вы можете создать свой собственный массив, используя любым из указанными ниже способами.(Не все)
string[] dataArray = new string[30];
1.это создаст массив с 30 нулевыми значениями
string[] dataArray = { "A", "B", "C" }; //Go up to 30 items
2.это создаст массив с предопределенным набором значений, вы можете перейти к 30
string[] dataArray = Enumerable.Repeat<string>(String.Empty, 30).ToArray();
3.это создаст массив со строкой, которая содержит пустые значения. Вместо String.Empty
вы можете поместить любое строковое значение.
Выберите любой из вышеперечисленных методов
Я рекомендуюпоследний метод, затем вы можете назначить его в наблюдаемую коллекцию, как показано ниже.
MessagesArray = new ObservableCollection<string>(dataArray);
Теперь уловка
vm.MessagesArray[0] = "A"
vm.MessagesArray[25] = "Z"
Вид может выглядеть следующим образом
<TextBlock Text="{Binding MessagesArray[0]}"/>
<TextBlock Text="{Binding MessagesArray[1]}"/>