3 / 3 / 1
Регистрация: 19.09.2012
Сообщений: 43
1

Получить текст выделенного элемента в ListBox

17.12.2012, 21:58. Показов 3940. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте уважаемые форумчане, помогите пожалуйста разобраться с одной проблемой:

Сам листбокс
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<Window.Resources>        
        <DataTemplate x:Key="MyImagesItemTemplate">           
            <Grid Height="70" Width="auto">               
                <Grid.ColumnDefinitions>                    
                    <ColumnDefinition Width="auto" />                   
                    <ColumnDefinition Width="auto" />                    
                </Grid.ColumnDefinitions>
                <Image Grid.Column="0" Source="{Binding Path=Image}"/>
                <!--"-->
                <TextBlock TextAlignment="Center" Margin="5,30,0,0"  Grid.Column="1" Text="{Binding Path=Title}"  FontFamily="/WpFTest;component/Fonts/#Calibri" FontSize="12" Focusable="False" />
                <!---->
            </Grid>           
        </DataTemplate>
    </Window.Resources>
</ListBox>
<ListBox x:Name="_TifForPdfListBox"  Grid.Row="2" Grid.Column="2" Panel.ZIndex="3" ItemsSource="{Binding Path=MyImages, ElementName=window1}" ItemTemplate="{StaticResource MyImagesItemTemplate}"/>
Класс для добавления итемов в листбокс

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
public class IS
    {      
                 
        public ObservableCollection<MyImageClass> MyImages { get; set; }
        }
     
        public class MyImageClass
        {
            public MyImageClass(string title, BitmapImage image)
            {
                this.Title = title;
                this.Image = image;
            }
     
            public string Title { get; set; }
 
            public BitmapImage Image { get; set; }
        }
        public static class convert
        {
            public static BitmapImage TObitmapimage(System.Drawing.Image image)
            {
                MemoryStream ms = new MemoryStream();
                image.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
                BitmapImage bmp = new BitmapImage();
                bmp.BeginInit();
                bmp.StreamSource = new MemoryStream(ms.ToArray());
                bmp.EndInit();
                return bmp;
            }
        }
Добавление итем в листбокс

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
 /// <summary>Добавляем файлы изображений в листбокс 
        /// <param name="path">Директория с файлами для добавления</param>
        /// <param name="extension">Расширение файлов</param>  
        /// <param name="listbox">Листбокс в который производится добавление</param>
        /// </summary>
        public void AddImagesToListBox(string path, string extension, contr.ListBox listbox)
        {
            try
            {
                ListCollection.Clear();
                //var imgg = new ObservableCollection<MyImageClass>();
                System.Drawing.Image.GetThumbnailImageAbort myCallback = new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);
                if (path.Length > 0)
                {                   
                    FileInfo[] tiftoconvert = new DirectoryInfo(path).GetFiles(extension);
                    for (int i = 0; i < tiftoconvert.Length; i++)
                    {
                        
                        if (!tiftoconvert[i].Name.Contains(listbox.Items.ToString()))
                        {
                            Bitmap b = new Bitmap(tiftoconvert[i].FullName);                            
                            {
                                ListCollection.Add(new MyImageClass(tiftoconvert[i].Name, convert.TObitmapimage(b.GetThumbnailImage(50, 70, ThumbnailCallback, IntPtr.Zero))));
                            }
                        }                
                    }
                    listbox.ItemsSource = (ListCollection); 
                }
            }
            catch (Exception e) {  }
        }
         private bool ThumbnailCallback()
        {
            return false;
        }
копируем итемы в другой листбокс

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
/// <summary>Копируем объекты из Листбокса в Листбокс
        /// <param name="LFrom">Откуда копируем</param>
        /// <param name="LFrom">Откуда копируем</param>
        /// <param name="LTo">Куда копируем</param>      
        /// </summary>
        public void FromListboxToListbox(bool AllOrNot, contr.ListBox LFrom, contr.ListBox LTo)
        {
            if (AllOrNot == true)
            {
                foreach (object obj in LFrom.Items)
                {
                    if (!LTo.Items.Contains(obj))
                        LTo.Items.Add(obj);
                }
            }
            if (LFrom.SelectedItems.Count > 0)
            {
                foreach (object obj in LFrom.SelectedItems)
                {
                    if (!LTo.Items.Contains(obj))
                    LTo.Items.Add(obj);
                }
 
            }
        
        }
Значит, добавляем итемы в листбокс, а затем копируем их в другой листбокс,
т.е. они уже не привязаны к коллекции, мне нужно получить из итема строку текста
например я делаю так:
C#
1
2
3
4
foreach (object obj in ListBox.Items)
        {
        string s = obj.ToString();
        }
s будет равна чему то вроде MyImageClass.class а не названию итема
а как мне вытащить непосредственно текст из этого итема?
Спасибо за помощь.

Добавлено через 10 часов 41 минуту
Ну хоть идею подайте, куда копато то...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.12.2012, 21:58
Ответы с готовыми решениями:

Как получить имя выделенного элемента listbox?
Заполняю listbox через привязку(binding), теперь нужно записать в переменную имя выделенного...

Получить текст выделенного ListBoxItem
не могу получить текст выделенного ListBoxItem ошибка &quot;Ссылка на объект не указывает на экземпляр...

Как по событию TreeView_SelectedItemChanged получить индекс выделенного элемента
Здравствуйте. Как по событию TreeView_SelectedItemChanged получить индекс выделенного элемента?

Как получить Uid из вложенного элемента в listBox
Доброй ночи, только начал изучать wpf и c#, и столкнулся с непредвиденными трудностями со стороны...

2
1271 / 972 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
17.12.2012, 22:04 2
Цитата Сообщение от Ikaro Посмотреть сообщение
s будет равна чему то вроде MyImageClass.class а не названию итема
а как мне вытащить непосредственно текст из этого итема?
C#
1
2
3
4
5
foreach (object obj in ListBox.Items)
        {
var myData = obj as MyImageClass;
        string s = myData.Title;
        }
1
3 / 3 / 1
Регистрация: 19.09.2012
Сообщений: 43
18.12.2012, 22:16  [ТС] 3
*ikaro бьется головой об стол...
Всего одна строчка' спасибо огромное, все работает
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.12.2012, 22:16
Помогаю со студенческими работами здесь

Как задать Background для выделенного listBox
Делаю таким образом &lt;ListBox.ItemContainerStyle&gt; &lt;Style TargetType=&quot;{x:Type...

Как получить текст дочернего элемента TreeViewitem?
Есть дерево treeView А Африка Кофе Б Бразилия Кофе2 Как сделать...

Как получить текст нулевого элемента ComboBox ?
Добрый день. необходимо сравнить текст ComboBox'са с TextBox'ом и если совпадают то выставить в КБ...

Как получить текст выбранного элемента ComboBox с иконками
Даже не знал, что заткнусь в такой элементарной ситуации. У меня простой вопрос. Хочу получить...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru