Свойство Listview isvisible не работает из кода?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Гость
 Свойство Listview isvisible не работает из кода?

Сообщение Гость »


Я пытаюсь отобразить выбранное изображение или файл в своем пользовательском интерфейсе в виде списка. Первоначально для IsVisible списка я установил значение false, а после выбора элемента я установил для свойства IsVisible значение true. Моя проблема в том, что после выбора элемента список не отображается в пользовательском интерфейсе.

MainPage.xaml

100 150 100 100 150 100 13 20 13 220 330 220 MainPage.xaml.cs

публичный частичный класс MainPage: КонтентПейдж { общественный System.Collections.Generic.IEnumerable selectedFiles; public ObservableCollection AttachmentList; Фотография FileResult; публичная главная страница() { ИнициализироватьКомпонент(); AttachmentList = новый ObservableCollection(); } частный асинхронный void OnClicked (отправитель объекта, EventArgs e) { строковое действие = ждут DisplayActionSheet(null, «Отмена», null, «Фото», «Файл»); если (действие == "Фото") { string action1 = await DisplayActionSheet(null, «Отмена», null, «Сделать фото», «Загрузить из галереи»); if (action1 == "Сделать фото") { КамераКлик(); } else if (action1 == "Загрузить из галереи") { ГалереяКлик(); } } иначе если (действие == "Файл") { пытаться { selectedFiles = ждут FilePicker.Default.PickMultipleAsync(); foreach (элемент var в selectedFiles.ToList()) { AttachmentList.Add(новые MultipleAttachments() { AttachemntName = item.FileName, ImageSource = "ic_doc_xx.png".ToString(), TextColor = Цвета.Черный, тип = "файл", путь = элемент.FullPath }); Attachment_listview.IsVisible = правда; Attachment_listview.ItemsSource = AttachmentList; } } поймать (Исключение ex) { Debug.WriteLine("исключение:>>" + ex); } } } частный асинхронный void CameraClick() { пытаться { пытаться { фото = ждут MediaPicker.CapturePhotoAsync(); если (фото != ноль) { var newFile = Path.Combine(FileSystem.CacheDirectory, photo.FileName); используя (var поток = ожидайте фото.OpenReadAsync()) используя (var newStream = File.OpenWrite(newFile)) дождитесь потока.CopyToAsync(newStream); AttachmentList.Add(новые MultipleAttachments() { AttachemntName = Путь.GetFileName(photo.FullPath), ImageSource = Path.Combine(FileSystem.CacheDirectory, photo.FileName), TextColor = Цвета.Черный, тип = "изображение", путь = фото.FullPath }); Attachment_listview.IsVisible = правда; Attachment_listview.ItemsSource = AttachmentList; } } поймать (Исключение ex) { Console.WriteLine($"CapturePhotoAsync THREW: {ex.Message}"); } } поймать (Исключение ex) { System.Diagnostics.Debug.WriteLine("Исключение:>" + ex); } } асинхронная пустота GalleryClick() { пытаться { пытаться { фото = ждут MediaPicker.PickPhotoAsync(); если (фото != ноль) { var newFile = Path.Combine(FileSystem.CacheDirectory, photo.FileName); используя (var поток = ожидайте фото.OpenReadAsync()) используя (var newStream = File.OpenWrite(newFile)) дождитесь потока.CopyToAsync(newStream); AttachmentList.Add(новые MultipleAttachments() { AttachemntName = Путь.GetFileName(photo.FullPath), ImageSource = Path.Combine(FileSystem.CacheDirectory, photo.FileName), TextColor = Цвета.Черный, тип = "изображение", путь = фото.FullPath }); Attachment_listview.IsVisible = правда; Attachment_listview.ItemsSource = AttachmentList; } } поймать (Исключение ex) { Console.WriteLine($"CapturePhotoAsync THREW: {ex.Message}"); } } поймать (Исключение ex) { System.Diagnostics.Debug.WriteLine("Исключение галереи:>" + ex); } } } общедоступный класс MultipleAttachments: INotifyPropertyChanged { общественная строка AttachemntName {получить; набор; } тип общедоступной строки {get; набор; } общедоступный строковый путь {get; набор; } частный ImageSource imageSource; общедоступный источник изображений { набор { если (значение! = ноль) { источник изображения = значение; УведомитьСвойствоИзменено(); } } получать { вернуть источник изображения; } } частный Цвет textColor; общедоступный цвет TextColor { набор { если (значение! = ноль) { текстЦвет = значение; УведомитьСвойствоИзменено(); } } получать { вернуть текстЦвет; } } публичное событие PropertyChangedEventHandler PropertyChanged; Private void NotifyPropertyChanged([CallerMemberName] String propertyName = "") { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } } Если я удалю IsVisible="false" из файла xaml, элементы будут отображаться в пользовательском интерфейсе, но сначала мне нужно, чтобы представление списка было скрыто.

Обновить

В моей модели просмотра

private bool mediaVisibility = false; public bool MediaVisibility { получать { вернуть mediaVisibility; } набор { mediaVisibility = значение; OnPropertyChanged(nameof(MediaVisibility)); } } В MainPage.xaml.cs

//создаем переменную модели представления МедиаВьюМодель МВМ; ...... ..... //Добавлен контекст привязки МВМ = новая MediaViewModel (); BindingContext = МВМ; //внутри камеры, галереи и средства выбора файлов mvm.MediaVisibility = правда; В XAMl

.... @Mert Altiparmak После добавления привязки данных, как указано выше, представление списка не отображается в пользовательском интерфейсе, и я не понял, какую службу вы упоминаете в своем ответе.
Ответить Пред. темаСлед. тема

Быстрый ответ, комментарий, отзыв

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Свойство Listview isvisible не работает из кода?
    Гость » » в форуме C#
    0 Ответы
    7 Просмотры
    Последнее сообщение Гость
  • ListView остается пустым, когда я привязываю то же свойство к другому ListView
    Гость » » в форуме C#
    0 Ответы
    5 Просмотры
    Последнее сообщение Гость
  • Как вызвать перерисовку после изменения свойства isVisible
    Гость » » в форуме C#
    0 Ответы
    2 Просмотры
    Последнее сообщение Гость
  • C# WPF – Как я могу предварительно выбрать элементы ListView программно, используя свойство .IsSelected?
    Гость » » в форуме C#
    0 Ответы
    5 Просмотры
    Последнее сообщение Гость
  • WinUI3 Получение индекса элемента ListView, щелкнутого правой кнопкой мыши (C++)
    Гость » » в форуме C++
    0 Ответы
    14 Просмотры
    Последнее сообщение Гость

Вернуться в «C#»