powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / ComboBox, Binding, что не так?
1 сообщений из 1, страница 1 из 1
ComboBox, Binding, что не так?
    #38326130
Кифирчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
балуюсь WPF, в учебных целях, наткнулся на грабли...
через Linq2Sql сделал модель таблички, пытаюсь её прибиндить к ComboBox как lookup список
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
    public class EditModel 
    {
       public MoneyFlow Item { get; set; }// тоже модель таблицы Linq2Sql в которой есть поле AccountFrom_GUID
       public List<MoneyAccount> GetMoneyAccountFrom
        {
            get
            {
                DbCashContextDataContext ctx = new DbCashContextDataContext();
                {
                    return ctx.MoneyAccounts.ToList();
                }
            }
        }
    }


Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
        <ComboBox Grid.Row="0" Grid.Column="1" 
                  Name="cmbAccountFrom"
                  ItemsSource="{Binding Path=GetMoneyAccountFrom}" 
                  DisplayMemberPath="Account_Name" 
                  SelectedValuePath="Account_GUID" 
                  SelectedValue="{Binding Path=Item.AccountFrom_GUID}"
                  
                  />


и это в принципе нормально работает, за исключением того, что ComboBox не выводит поля Account_Name, а имя класса (левая часть рисунка)

подумал, что я какой-то мелочи не знаю, решил сделать практически аналогичный тестовый пример который тоже должен был "не правильно" работать, и его выложить с вопросом в форум
Код: c#
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.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
   public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
            Model1 model = new Model1();
            model.Str1 = "бла бла бла";
            model.ListStr2 = new List<ItemClass>();
            model.ListStr2.Add(new ItemClass() { Item_GUID = Guid.NewGuid(), Item_Str = "Строка1" });
            model.ListStr2.Add(new ItemClass() { Item_GUID = Guid.NewGuid(), Item_Str = "Строка2" });
            model.ListStr2.Add(new ItemClass() { Item_GUID = Guid.NewGuid(), Item_Str = "Строка3" });
            model.ListStr2.Add(new ItemClass() { Item_GUID = Guid.NewGuid(), Item_Str = "Строка4" });
            model.Selected_GUID = model.ListStr2.Last().Item_GUID;
            this.DataContext = model;
        }
    }
    public class A: INotifyPropertyChanged
    {        
        public event PropertyChangedEventHandler PropertyChanged;
        public void NPropertyChanged(string prop_Name)
        {
            if (PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(prop_Name));
        }
    }
    public class Model1:A
    {
        private string str1;
        private Guid? selected_GUID;
        public List<ItemClass> listStr2;

        public string Str1 {
            get
            {
                return str1;
            }
            set
            {
                str1 = value;
                NPropertyChanged("Str1");
            }
        }
        public Guid? Selected_GUID
        {
            get
            {
                return selected_GUID;
            }
            set
            {
                selected_GUID = value;
                NPropertyChanged("Selected_GUID");
            }
        }
        public List<ItemClass> ListStr2
        {
            get
            {
                return listStr2;
            }
            set
            {
                listStr2 = value;
                NPropertyChanged("ListStr2");
            }
        }


    }

    public class ItemClass:A
    {
        protected Guid? item_GUID;
        protected string item_Str;

        public Guid? Item_GUID
        {
            get
            {
                return item_GUID;
            }
            set
            {
                item_GUID = value;
                NPropertyChanged("Item_GUID");
            }
        }
        public string Item_Str
        {
            get
            {
                return item_Str;
            }
            set
            {
                item_Str = value;
                NPropertyChanged("Item_Str");
            }
        }
    }



Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
  <ComboBox 
            HorizontalAlignment="Left" 
            Margin="54,86,0,0" 
            VerticalAlignment="Top" 
            Width="120"
                  ItemsSource="{Binding Path=ListStr2}" 
                  DisplayMemberPath="Item_Str" 
                  SelectedValuePath="Item_GUID" 
                  SelectedValue="{Binding Path=Selected_GUID}"
            />



а он БАХ, и нормально работает! (правая часть рисунка)

посмотрел как Linq сделал поле Account_Name - все почти по феншую
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Account_Name", DbType="NVarChar(255)")]
		public string Account_Name
		{
			get
			{
				return this._Account_Name;
			}
			set
			{
				if ((this._Account_Name != value))
				{
					this.OnAccount_NameChanging(value);
					this.SendPropertyChanging();
					this._Account_Name = value;
					this.SendPropertyChanged("Account_Name");
					this.OnAccount_NameChanged();
				}
			}
		}



чегож тогда оно в списке комбобокса не выводится? что я делаю не так? (
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / ComboBox, Binding, что не так?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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