2015-04-23 4 views
0

Извините, что, возможно, является простым вопросом.Собственное вспомогательное свойство Строка для привязки списка к списку

У меня есть класс Назначение, которое имеет различные свойства строки.

У меня есть наблюдаемые коллекции из них, на мой взгляд модели, однако всякий раз, когда я связываться с какой-либо из свойств в ListBox он возвращается с каждого символа для первого входа, имеющий это отдельная строка

К сожалению, я не есть код на руке, но подводить итоги

сlass Appointment 
{ 
    public Appointment(string ыubject) 
    { 
     Subject = subject; 
    } 

    public string Subject { get; set; } 
} 

class Appointments 
{ 
    public Appointments() 
    { 
     ListOfAppointments = new ObservableCollection<Appointment>(); 
     ListOfAppointments.Add(new ListOfAppointments("Example")); 
    } 

    public ObservableCollection<Appointment> ListOfAppointments { get; set; } 
} 

в XAML:

<ListBox DataContext="{StaticResource AppointementViewModel, Path=ListOfAppointments}" ItemSource="{Binding Subject }" /> 

Надеясь, что это правильно. Результаты в окне списка показывает это

E 
X 
A 
M 
P 
L 
E 

Я довольно ключ меньше в данный момент и как я не обновление информации после первоначальных выборок я не INotifyProperty реализованы

Пожалуйста, обратите внимание, что данные в процессе загрузки правильно это просто быстрый пример для тиражирования.

Также, если я использую linq в бэкэнд для запроса, он возвращает правильные результаты, так как фактическая реализация имеет более одного поля, которое было бы громоздким обходным решением. Есть идеи?

ответ

4

ListBox ItemsSource должен быть ListOfAppointments и в DataTemplate вы можете связать предмет собственности

<ListBox DataContext="{StaticResource AppointementViewModel}" ItemSource="{Binding ListOfAppointments}" ItemTemplate="{StaticResource MyTemplate}"/> 

<DataTemplate x:Key="MyTemplate"> 
    <TextBlock Text="{Binding Subject}" /> 
</DataTemplate> 

В примере кода, приведенной в вопросе, ListOfAppoinments дается как DataContext в ListBox и Subject, что и ItemsSource , Таким образом, ListBox берет свойство Subject из первого объекта в ListOfAppoinments как свой ItemSource. Таким образом, строка разделяется и назначается каждому ListBoxItem.

В приведенном выше коде мы предоставили ListOfAppoinments как ItemsSource. Поэтому каждый объект Appointment берется из списка и присваивается ListBoxItems. Поскольку мы связали Subject с номером TextBlock в DataTemplate, который будет отображаться.

+0

Спасибо, что он работает и будет реализовывать это исправление завтра, однако мне интересно, почему он вырывает строку в символы? Тем не менее, если я выбираю объект в бэкэнд-ресурсе, используя LINQ, он отлично связывается. Спасибо за помощь снова. – user2008572