Привязка свойства ListView ItemsSource - PullRequest
0 голосов
/ 29 ноября 2011

В моей ViewModel у меня есть 2 свойства: первое -

    public ContactList ContactList
    {
        get { return _contacts; }
    }

, где ContactList : IEnumerable<Contact>, а второе - просто оболочка

public ObservableCollection<Contact> Contacts
{
    get
    {
        return new ObservableCollection<Contact>(ContactList);
    }
}

На мой взгляд, у меня есть ListView.Когда я связываю этот ListView с ContactList - ничего не происходит, но если я использую свойство Contacts в качестве его ItemsSource - все в порядке.

Обновление:

<ListView ItemsSource="{Binding Path=Contacts}">
    <ListView.View>
        <GridView>
            <GridViewColumn Width="230">
                <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <views:ContactViewer 
                                DataContext="{Binding Converter={StaticResource ContactToViewModelConverter}}" />
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>
        </GridView>
    </ListView.View>
</ListView>

Что касается неработающего кода - я 'Мы только что изменили Контакты на ContactList в привязке.А во втором случае - в конвертер ничего не приходит, даже ошибка привязки не отображается.

Ответы [ 2 ]

0 голосов
/ 29 ноября 2011

Я не знаю, если это ваш случай .... но данные должны быть доступны для ListView до того, как ListView будет загружен ...., чтобы он мог заполнить ListView ... если не вы должны использовать INotifyPropertyChanged так что вы можете сказать ListView, что я загружен .... Наблюдаемая коллекция запускает коллекцию, изменившую уведомление на listView, так что listView заполняет его соответствующим образом ... Это должно работать

     public ContactList ContactList     
     {         
              get 
              { 
                       return _contacts; 
              } 
              Set
              {
                       _contacts= value;
                       OnPropertyChnaged("ContactList");
              }    
     }

Плз, дайте мне знать, работает ли он или нет ....

0 голосов
/ 29 ноября 2011

Я почти уверен, что вы столкнулись с этой проблемой из-за того, что ваш ContactList наследуется от IEnumerable вместо ObservableCollection.

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