Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / WPF + Binding / 5 сообщений из 5, страница 1 из 1
13.04.2010, 19:17
    #36577321
Crossificio
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF + Binding
Обнаружил, что в VS2010 Ultimate Trial, при попытке привязать коллекцию к ListBox, "желаемое" отображение получается лишь при переопределении метода ToString(). При указании же в биндинге Path = LastName или установки свойства DisplayMemberPath="LastName" я вообще не получаю отображаемых элементов. Если не указывать ни Path ни DisplayMemberPath, то просто получаю полное квалифицированное имя класса для каждого элемента коллекции. Что я делаю не так?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
namespace TestWpfApplication
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MyPersonList mpl;

        public MainWindow()
        {
            InitializeComponent();
            mpl = new MyPersonList();
        }            
    }    

    public class Person
    {
        public Person(string firstName, string lastName)
        {
            FirstName = firstName;
            LastName = lastName;
        }        

        string FirstName { get; set; }
        string LastName { get; set; }

        //public override string ToString()
        //{
        //    return LastName;
        //    // return base.ToString();
        //}
    }

    public class MyPersonList : List<Person>
    {
        public MyPersonList()
        {
            Add(new Person("Иван", "Иванов"));
            Add(new Person("Пётр", "Петров"));
            Add(new Person("Сидор", "Сидоров"));            
        }
    }      
}


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<Window x:Class="TestWpfApplication.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:obj="clr-namespace:TestWpfApplication"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <obj:MyPersonList x:Key="PersonData" />                 
    </Window.Resources>
    <Grid>
        <ListBox Height="311" HorizontalAlignment="Left" Name="listBox1" VerticalAlignment="Top" Width="163" 
                 ItemsSource="{Binding Source={StaticResource PersonData},  Path=LastName, Mode=OneWay}" />
    </Grid>
</Window>
...
Рейтинг: 0 / 0
14.04.2010, 10:09
    #36577909
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF + Binding
вроде конструктор по умолчанию нужен.
там вообщето dbg должен выдать ошибки. не смотрел?
...
Рейтинг: 0 / 0
14.04.2010, 12:46
    #36578340
eJack
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF + Binding
Нужно для листбокса описать datatemplate и все
...
Рейтинг: 0 / 0
14.04.2010, 12:52
    #36578356
Crossificio
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF + Binding
Ошибок не было, а проблема оказалась в отсутствии модификатора доступа public у свойств класса Person.
...
Рейтинг: 0 / 0
14.04.2010, 13:03
    #36578382
eJack
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF + Binding
Код: plaintext
1.
2.
3.
4.
5.
6.
<ListBox x:Name="ListboxPersone" Margin="10">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Label Content="{Binding Path=FirstName}"/>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / WPF + Binding / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]