Почему ListView не показывает элементы на WPF? - PullRequest
0 голосов
/ 26 октября 2018

Я пытаюсь отобразить значения представления списка в WPF APP, но я могу только показать заголовки, на следующем очень простом коде:

 public class Ticket 
    {
        public string Descrption { get; set; }
        public string Status { get; set; }
        public Ticket()
        {    
        }           
    }

XAML:

 <ListView ItemsSource="{Binding AllTasks}" Margin="34,30,69,65">
            <ListView.View>
                <GridView>
                    <GridViewColumn DisplayMemberBinding="{Binding Descrption}" Header="Ticket" Width="150"></GridViewColumn>
                    <GridViewColumn DisplayMemberBinding="{Binding Status}" Header="Status" Width="50"></GridViewColumn>
                </GridView>
            </ListView.View>
        </ListView>



public partial class MainWindow : Window
    {
        List<Ticket> AllTasks { get; set; }
        public MainWindow() 
        {
            InitializeComponent();

            AllTasks = new List<Ticket>();           

            Ticket ticket2 = new Ticket();
            ticket2.Descrption = "test";
            ticket2.Status = "To Do";
            AllTasks.Add(ticket2);

            Ticket ticket3 = new Ticket();
            ticket3.Descrption = "New Ticket";
            ticket3.Status = "In Progress";

            AllTasks.Add(ticket3);

            DataContext = this;
        }
    }

Пользовательский интерфейс выглядит как следующее изображение:

enter image description here

1 Ответ

0 голосов
/ 26 октября 2018

Привязка данных WPF работает только с общими свойствами:

public List<Ticket> AllTasks { get; set; }

Свойство также должно быть доступно только для чтения (или вызвать уведомление об изменении свойства):

public List<Ticket> AllTasks { get; } = new List<Ticket>();

На случай, если вы хотитедобавить или удалить элементы после установки DataContext представления, используйте ObservableCollection:

public ObservableCollection<Ticket> AllTasks { get; }
    = new ObservableCollection<Ticket>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...