2013-06-05 3 views
-1

У меня проблема с привязкой ListView, она не показывает ничего в списке. У меня есть следующий ViewModel:Переплет Список объектов в ListView не работает

namespace Users.ViewModel 
{ 
    public class AllUsersViewModel 
    { 
     public List<Module> _modules = new List<Module>(); 

     #region Constructor 

     public AllUsersViewModel() 
     { 
      this.SetModuleList(); 
     } 

     void SetModuleList() 
     { 
      _modules = ModuleRepository.GetModules(); 
     } 
    } 
} 

И функция GetModules() это возвращает набор просто отлично. Я проверил чек через список _modules. Вот моя XAML:

<ListBox x:Name="lstModules" Width="190" ItemsSource="{Binding _modules}"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding ModuleName}"></TextBlock> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

Что проблема, почему не ListBox заселить?

ответ

1

_modules - это поле, и вы не можете привязываться к полям. Сделайте свойство, которое обнажает значение _modules:

public IEnumerable<Module> Modules 
{ 
    get { return _modules; } 
} 

и связываются с этим свойством вместо:

<ListBox x:Name="lstModules" Width="190" ItemsSource="{Binding Modules}"> 
+0

Пробовали, копировать и вставлять свои примеры, не меняя ничего другого, то ListBox по-прежнему отображать пустой – Hank

+0

Затем следует проверить 'значение DataContext' из' lstModules'. – max

0

Коллекция Модули должны быть свойством, а не переменная.

public List<Module> Modules { get; set; } 
Смежные вопросы