Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
13 / 13 / 2
Регистрация: 03.09.2012
Сообщений: 133
1

Связывание List<T> с ListBox

10.09.2014, 14:12. Показов 1720. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, играюсь с WPF есть несколько вопросов к Гуру
В code-behind достаю из базы какую-то выборку и привязываю к лист боксу на форме:
XML
1
2
3
4
<Grid x:Name="dbGrid" Height="280" Width="500">
    <ListBox x:Name="lb1" Height="100" Width="189" Margin="50" 
             ItemsSource="{Binding}" DisplayMemberPath="Name" />
</Grid>

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    public partial class Database : UserControl
    {
        private List<Bank> allBanks;
        private AmethystDatabaseEntities dbContext;
 
        public Database()
        {
            InitializeComponent();
            dbContext = new AmethystDatabaseEntities();
        }
 
        private void Test_Click(object sender, RoutedEventArgs e)
        {
            allBanks = (from f in dbContext.Bank
                        where f.Name != "333"
                        orderby  f.BankId ascending 
                        select f).ToList();
            var myVar = allBanks;
            dbGrid.DataContext = allBanks;
        }
    }
}
Вопрос в следующем, если я закоментирую последнюю строчку кода, где задаю гриду контекст
C#
1
//dbGrid.DataContext = allBanks;
то какими различными способами я могу привязать коллекцию к ListBox через XAML..?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.09.2014, 14:12
Ответы с готовыми решениями:

Связывание List и ListBox
Здравствуйте, подскажите пожалуйста. У меня имеется список строк, который нужно связать с...

Привязка ListBox к содержимому List<>
есть класс: public class Исполнитель { public string name; public string path; ...

List<bool> в ListBox, представление
Доброго времени суток, уважаемые. Имеется проблемка. У меня имеется класс, в котором имеется...

Ошибка связывания ListBox(ListView) с коллекцией List
Здравствуйте. Помогите разобраться, пожалуйста. Есть некоторый класс, предположим Person public...

3
116 / 116 / 42
Регистрация: 27.02.2013
Сообщений: 899
11.09.2014, 06:27 2
попробуй так привязать
C#
1
listbox.ItemsSource = allBanks
0
13 / 13 / 2
Регистрация: 03.09.2012
Сообщений: 133
12.09.2014, 10:05  [ТС] 3
Нет, это же императивная шляпа, такое можно было делать и в WinForms, вопрос именно о биндинге:
Можно задать DataContext окна ака RelativeSource Self, можно привязаться к нему через ElementName, а какие еще варианты?
0
Эксперт .NET
4432 / 2092 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
12.09.2014, 11:04 4
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
<Window x:Class="Wpf_Bindings.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:wpfBindings="clr-namespace:Wpf_Bindings"
        Title="MainWindow"
        Width="525"
        Height="350">
 
  <Grid>
    <wpfBindings:DatabaseControl />
  </Grid>
 
</Window>
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<UserControl x:Class="Wpf_Bindings.DatabaseControl"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:local="clr-namespace:Wpf_Bindings"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             d:DesignHeight="300"
             d:DesignWidth="300"
             mc:Ignorable="d">
 
  <Grid x:Name="dbGrid">
 
    <ListBox x:Name="lb1"
             ItemsSource="{Binding TextDataSource,
                                   RelativeSource={RelativeSource FindAncestor,
                                                                  AncestorType={x:Type local:DatabaseControl}}}" />
  </Grid>
 
</UserControl>
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
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Windows;
using System.Windows.Controls;
 
namespace Wpf_Bindings
{
    public partial class DatabaseControl : UserControl
    {
        public static readonly DependencyProperty TextDataSourceProperty = DependencyProperty.Register(
            "TextDataSource", typeof(ObservableCollection<string>), typeof(DatabaseControl),
            new PropertyMetadata(default(ObservableCollection<string>)));
 
        public DatabaseControl()
        {
            InitializeComponent();
 
            Loaded += DatabaseControl_Loaded;
        }
 
        void DatabaseControl_Loaded(object sender, RoutedEventArgs e)
        {
            var allBanks = new List<string>()
            {
                "0001", 
                "0002", 
                "0003", 
                "0004", 
                "0005", 
            };
 
            TextDataSource = new ObservableCollection<string>(allBanks);
            TextDataSource.Add("0006");
        }
 
        public ObservableCollection<string> TextDataSource
        {
            get { return (ObservableCollection<string>)GetValue(TextDataSourceProperty); }
            set { SetValue(TextDataSourceProperty, value); }
        }
    }
}
0
12.09.2014, 11:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.09.2014, 11:04
Помогаю со студенческими работами здесь

Как добавить в коллекцию List<string> из ListBox несколько элементов
Как добавить в коллекцию List из ListBox несколько слов в том случае если вхождения строки...

Отображение в listBox поля элемента из коллекции коллекций List<List<>>
Есть карта в pictureBox-е. На ней мышкой ставяться флажки(маркеры). Нужно хранить их в БД с...

Связывание данных List<T> c DataGridView
Здравствуйте у меня такой вопрос я создал класс public class Point { private int...

Связывание dataGridView с классом{List}
Есть класс public class RezultTirage { int dateTirage ; int number; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru