2016-06-27 4 views
-1

Итак, я закодировал простой пример практики привязки данных, но у меня есть небольшая проблема. У меня есть ObservableCollection, привязанный к DataBox. Когда я запускаю программу, сначала кажется, что в ListBox ничего нет, но когда я наводил на нее курсор мыши, я вижу контуры точно такого же количества элементов, что и в ObservableCollections, но на них ничего не говорится. Вот мой код:Элементы ListBox, не показывающие

XAML:

<ListBox Margin="0, 40, 0, 0" x:Name="lb1" ScrollViewer.CanContentScroll="True"> 
     <ListBox.ItemTemplate> 
      <DataTemplate> 
       <DockPanel> 
        <TextBlock DockPanel.Dock="Left" x:Name="_age" Text="{Binding Path=Age}"/> 
        <TextBlock DockPanel.Dock="Right" x:Name="_cash" Text="{Binding Path=Cash}" /> 
        <TextBlock DockPanel.Dock="Top" x:Name="_name" Text="{Binding Path=FullName}"/> 
        <TextBlock DockPanel.Dock="Top" x:Name="_gender" Text="{Binding Path=Gender}"/> 
       </DockPanel> 
      </DataTemplate> 
     </ListBox.ItemTemplate> 
    </ListBox> 

Code-за:

public class Person{ 
    public Person(string _FullName, int _Age, string _Gender, string _AboutMe, decimal _Cash) 
    { 
     this.FullName = _FullName; 
     this.Age = _Age; 
     this.Gender = _Gender; 
     this.AboutMe = _AboutMe; 
     this.Cash = _Cash; 

    } 
    public string FullName; 
    public int Age; 
    public string Gender; 
    public string AboutMe; 
    public decimal Cash; 
} 

public partial class MainWindow : Window 
{ 

    public ObservableCollection<Person>People = new ObservableCollection<Person>(); 

    public MainWindow() 
    { 
     People.Add(new Person("John Doe", 35, "M", "My name is John Doe", 1500)); 
     People.Add(new Person("Sarah Maine", 28, "F", "My name is Sarah Maine", 2150)); 
     People.Add(new Person("George Smith", 65, "M", "My name is George Smith", 4999)); 
     People.Add(new Person("Rachel Ramsey", 46, "F", "My name is Rachel Ramsey", 3199)); 
     People.Add(new Person("Rachel Ramsey", 46, "F", "My name is Rachel Ramsey", 3199)); 
     InitializeComponent(); 

     lb1.ItemsSource = People; 

    } 
} 

Любые идеи? Благодаря

+0

Нужно быть государственной собственностью с «получить» – Paparazzi

ответ

0

Ваш Человек-класс нуждается в некоторых свойствах и не только поля:

public class Person { 
    public Person(string _FullName, int _Age, string _Gender, string _AboutMe, decimal _Cash) { 
     this.FullName = _FullName; 
     this.Age = _Age; 
     this.Gender = _Gender; 
     this.AboutMe = _AboutMe; 
     this.Cash = _Cash; 

    } 
    private string fullName; 
    private int age; 
    private string gender; 
    private string aboutMe; 
    private decimal cash; 

    public string FullName { 
     get { 
     return fullName; 
     } 

     set { 
     this.fullName = value; 
     } 
    } 

    public int Age { 
     get { 
     return age; 
     } 

     set { 
     this.age = value; 
     } 
    } 

    public string Gender { 
     get { 
     return gender; 
     } 

     set { 
     this.gender = value; 
     } 
    } 

    public string AboutMe { 
     get { 
     return aboutMe; 
     } 

     set { 
     this.aboutMe = value; 
     } 
    } 

    public decimal Cash { 
     get { 
     return cash; 
     } 

     set { 
     this.cash = value; 
     } 
    } 
    } 

Рассмотрим для реализации INotifyPropertyChanged слишком

Смежные вопросы