Привязка источника элементов ListView без использования mvvm - PullRequest
0 голосов
/ 10 января 2019
 public MainWindow()
    {
        InitializeComponent();

        listView1.ItemsSource = myData; // myData is not ObservableCollection 
    }


    private void AddData_ButtonClick(object sender, RoutedEventArgs e)
    {
        myData.Add(/*adding new item*/);
        listView1.Items.Refresh();
    }

и код xml:

 <ListView x:Name="listView1" ItemsSource="{Binding}">
            <ListView.View>
                <GridView>
                    <GridViewColumn DisplayMemberBinding="{Binding Name}"  Header="File Name"/>
                    <GridViewColumn DisplayMemberBinding="{Binding NumOfPoints}" Header="Points"/>
                </GridView>
            </ListView.View>
  </ListView>

это работает хорошо, я просто хотел улучшить свой код. Например, удалив метод Items.Refresh () и улучшив привязку. Я новичок в wpf и ищу лучший совет, и я не в mvvm прямо сейчас. Любое предложение будет оценено.

1 Ответ

0 голосов
/ 11 января 2019

myData должен быть ObservableCollection<T> или любым другим типом, который реализует интерфейс INotifyCollectionChanged, чтобы вы могли видеть добавленные элементы в ListView без необходимости явного сброса или обновления его коллекции элементов. Вот почему существует класс ObservableCollection<T>.

Таким образом, вы должны изменить тип файлов с List<SDRFile> на ObservableCollection<SDRFile>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...