С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
1 / 1 / 0
Регистрация: 18.09.2013
Сообщений: 13
1

Динамический просмотр свойства

15.05.2014, 03:11. Показов 1115. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброй ночи! Возник такой вопрос как реализовать такую вещь. К примеру в классе есть очень много свойств(ид, возраст...)И вот на формочке есть текстбокс я туда пишу к примеру Ид, кликаю по кнопочке и должно отобразиться значение свойства ид. Как это реализовать? Тупой набор if switch не рассматривается.

Добавлено через 13 минут
Забыл сказать что проект пишется на Windows Form
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Блог
15.05.2014, 03:11
Ответы с готовыми решениями:

Просмотр записей типизированного файла через динамический массив
Задание выглядит так: На форме «Просмотр всех записей файла» организуйте сортировку записей по...

Выполнить команду в set свойства для свойства SelectedItem (ComboBox ) MVVM
Хай Коротко: при каждом выборе элемента из ComboBox нужно выполнять команду, для которой в...

PropertyGrid. Как отловить видимость свойства в зависимости от другого свойства?
Работаю с propertyGrid. Одно поле высвечивается, когда в другом появляется определенное значение....

Что лучше, свойства с приватной переменной или автоматические свойства?
Известно, что в классах свойства можно определить так: class MyClass { private...

8
434 / 299 / 82
Регистрация: 11.12.2010
Сообщений: 1,209
15.05.2014, 07:44 2
Ты про рефлексию?
0
654 / 591 / 171
Регистрация: 17.07.2012
Сообщений: 1,678
Записей в блоге: 1
15.05.2014, 08:04 3
Лучший ответ Сообщение было отмечено tezaurismosis как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/// <summary>
/// Возвращаем значение свойства, преобразованное в строку
/// </summary>
/// <param name="obj">Объект вашего класса</param>
/// <param name="propertyName">Имя нужного свойства</param>
/// <returns></returns>
public string GetPropertyValue(MyClass obj, string propertyName)
{
    var info = obj.GetType().GetProperty(propertyName);
    if (info != null)
    {
        return info.GetValue(obj).ToString();
    }
    return "error";
}
Не забудьте подключить
C#
1
using System.Reflection;
0
434 / 299 / 82
Регистрация: 11.12.2010
Сообщений: 1,209
15.05.2014, 08:15 4
Лучший ответ Сообщение было отмечено MisterOzzy как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        public class Cc
        {
            public Int32 Id { get; set; }
            public String StringId { get; set; }
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            var cc = new Cc { Id = 10, StringId = "ololo" };
            if (cc.GetType().GetProperties().Any((x => x.Name == textBox1.Text)))
            {
                var val = cc.GetType().GetProperty(textBox1.Text);
                MessageBox.Show(val.GetValue(cc).ToString());
            }
        }
0
1 / 1 / 0
Регистрация: 18.09.2013
Сообщений: 13
15.05.2014, 08:23  [ТС] 5
Благодарю! Вот еще один вопрос возник возможно ли теперь провернуть такую вещь: есть много классов, есть много в них свойств можно ли к при меру из комбобокса выбрать а текстбокс написать нужное свойство и оно выведет значение? И еще такой вопрос к примеру у меня есть комбобокс и как в него запихнуть лист доступных свойств класса?? И тогда я из него выбираю свойство и могу отредактировать в текстбоксе. Как такое сделать?
0
434 / 299 / 82
Регистрация: 11.12.2010
Сообщений: 1,209
15.05.2014, 08:30 6
Цитата Сообщение от MisterOzzy Посмотреть сообщение
И тогда я из него выбираю свойство и могу отредактировать в текстбоксе
Само свойство отредактировать нельзя. Только его значение.
C#
1
val.SetValue(cc, новое_значение, null);
0
995 / 893 / 354
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
15.05.2014, 09:22 7
Цитата Сообщение от MisterOzzy Посмотреть сообщение
есть много в них свойств можно ли к при меру из комбобокса выбрать а текстбокс написать нужное свойство и оно выведет значение?
Выведет, если в виде текста значение реально представить (в крайнем случае тип свойства получите).
Цитата Сообщение от MisterOzzy Посмотреть сообщение
И еще такой вопрос к примеру у меня есть комбобокс и как в него запихнуть лист доступных свойств класса??
GetProperties(), как в примере выше
0
1 / 1 / 0
Регистрация: 18.09.2013
Сообщений: 13
20.05.2014, 02:16  [ТС] 8
Такой вопрос: как лучше организовать, у меня есть лист тексбоксов и класс из многих свойств, как лучше всего организовать связь текстбокса к свойству классу? Что бы можно было устанавливать и получать значение.
0
654 / 591 / 171
Регистрация: 17.07.2012
Сообщений: 1,678
Записей в блоге: 1
20.05.2014, 09:25 9
Цитата Сообщение от MisterOzzy Посмотреть сообщение
Такой вопрос: как лучше организовать, у меня есть лист тексбоксов и класс из многих свойств, как лучше всего организовать связь текстбокса к свойству классу? Что бы можно было устанавливать и получать значение.
Либо использовать привязки данных, либо INotifyPropertyChanged интерфейс.
0
20.05.2014, 09:25
BasicMan
Эксперт
19315 / 2622 / 84
Регистрация: 17.02.2009
Сообщений: 10,364
Блог
20.05.2014, 09:25
Помогаю со студенческими работами здесь

Можно ли объекту присвоить значение свойства от другого свойства?
Здравствуйте! Подскажите пожалуйста. var book = { title:&quot;Java Programming&quot;, author:&quot;John...

Реализовать зависимость свойства volume у mediaElement от свойства Value у slider
Добрый день! Как можно реализовать зависимость свойства volume у mediaElement от свойства Value у...

Биндинг свойства контрола к одной из переменных свойства класса
Добрый день. У меня есть вопрос по биндингу. Ситуация следующая: У меня есть структура, ...

Создать Generic Mapper, который будет мапить схожие свойства одного объекта в свойства другого
Нужно создать generic mapper, который будет мапить схожие(similar) свойства одного объекта в...


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

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