WPF - элементы списка, не видимые в Blend, когда используется 'DisplayMemberPath' - PullRequest
0 голосов
/ 24 марта 2010

В настоящее время мы разрабатываем, как реализовать MVVM, и я дошел до того, что у меня есть MVVM Light Toolkit, настроенный в blend, и он может указывать фиктивные данные, которые будут предоставлены при работе в Blend. Все хорошо.

Я создал фиктивный список данных. Список содержит 6 экземпляров очень простого класса с именем DummyItem, который имеет свойства Age и Name.

Вот основной код из моего класса 'DummyList':

public class DummyItem{

    public string Name;
    public int Age;

    public DummyItem(string name, int age){
        this.Name = name;
        this.Age = age;
    }
}

public class DummyList : ArrayList
{
    public DummyList()
    {
        this.Add(new DummyItem("Dummy1", 00));
        this.Add(new DummyItem("Dummy2", 01));
        this.Add(new DummyItem("Dummy3", 02));
        this.Add(new DummyItem("Dummy4", 03));
        this.Add(new DummyItem("Dummy5", 04));
        this.Add(new DummyItem("Dummy6", 05));
    }
}

Вот резолютивная часть моего XAML. Строка DataContext работает и указывает на правильный ViewModel.

<Grid x:Name="LayoutRoot">
    <ListBox x:Name="ListViewBox"
        DataContext="{Binding Source={StaticResource Locator}, Path=ListViewModel}"
        ItemsSource="{Binding TheList}"
        DisplayMemberPath="Name">
    </ListBox>
</Grid>

Проблема в том, что когда я добавляю 'DisplayMemberPath', как я уже делал выше, я больше не вижу элементы списка в Blend. Если я удаляю «DisplayMemberPath», я вижу список объектов (DummyItem) с их полным путем. Когда приложение запущено, все работает отлично. Просто в самой Blend я не вижу элементы списка, когда использую 'DisplayMemberPath'.

Кто-нибудь знает, почему я не вижу элементы внутри самой Blend, когда использую DisplayMemberPath?

Спасибо!

AT

1 Ответ

1 голос
/ 25 марта 2010

Попробуйте указать свойства Name и Age:

public class DummyItem
{  
    public string Name {get; set; }
    public int Age {get; set;}

    public DummyItem(string name, int age)
    { 
        this.Name = name; 
        this.Age = age; 
    } 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...