87 / 87 / 36
Регистрация: 27.11.2011
Сообщений: 713
1

Конвертер величин: Что нужно делать в методе ConvertBack что бы возвращать и редактировать значение

18.08.2014, 12:08. Показов 1441. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Форумчане помогите разобраться все перерыл не могу догнать(( Что нужно делать в методе ConvertBack что бы возвращать и редактировать значение??


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
   public class Converter:IValueConverter
    {
 
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            int id = (int) value;
            return string.Format("Id : {0}",id.ToString("P"));
        }
 
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
          
            
        }
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.08.2014, 12:08
Ответы с готовыми решениями:

Что делать, чтобы редактировать сайт?
я зарегистрировал домен на регги.ру потом на рег.ру заказал хостинг, изменил днс сервера домена на...

Путь новичка: что есть, что нужно, в какую сторону делать?
так вот - у меня есть Ст-96, катушка припоя, набодяженная со спиртом канифоль, макетная плата...

Компилятор пишет , что не возможно преобразовать string в char. Что нужно делать ?
#include <iostream> #include <string> #include<functional> #include<algorithm> #include...

Нужно ли выполнение запроса в методе возвращать по return?
Какая разница? Если нужно просто только выполнить запрос. function a() return запрос ...

12
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
18.08.2014, 14:50 2
Цитата Сообщение от jecus Посмотреть сообщение
Что нужно делать в методе ConvertBack что бы возвращать и редактировать значение??
Обрезать "ID : " и значок процента. И попытаться привести,
наверно все же к double .
И разделить на 100.
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
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            double id = (double)value;
            return string.Format("Id : {0}", id.ToString("P"));
        }
 
         public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            string valueAsString = value as string;
            double result;
            if (double.TryParse(valueAsString, out result))
            {
                return result / 100.0;
            }
            else 
            {
 
                //valueAsString = valueAsString.
                //    Replace(NumberFormatInfo.CurrentInfo.PercentSymbol, String.Empty).
                //    Replace("Id : ", String.Empty);
 
                 Match m = Regex.Match(valueAsString, "\\d+\\.\\d+");
                if (double.TryParse(m.Value, out result))           
                return result / 100.0;
            }
            return value;
 
        }
0
87 / 87 / 36
Регистрация: 27.11.2011
Сообщений: 713
18.08.2014, 15:39  [ТС] 3
Спасибо ! и еще такой вопрос,для каждой задачи писать свой конвертр можно запутаться во всем,может можно как то упростить?
0
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
18.08.2014, 16:14 4
надо ответа "гур" подождать. Похоже да, для каждой задачи писать свой конвертер.


jecus, или вы про ресурсы? В разметке пишется x:Shared="false" ,
и тогда при каждом обращении к ресурсу создается новый объект.
C#
1
2
3
 <Window.Resources>
        <mynamespace:SimpleConverter x:Shared="false" x:Key="mConverter"/>
    </Window.Resources>
0
Кодогенератор
200 / 200 / 51
Регистрация: 15.06.2011
Сообщений: 794
19.08.2014, 04:31 5
Цитата Сообщение от jecus Посмотреть сообщение
и еще такой вопрос,для каждой задачи писать свой конвертр можно запутаться во всем,может можно как то упростить?
скорее всего придется.
вы вероятно пытаетесь приводить некоторые данные к удобочитаемому виду для пользователя?
1
87 / 87 / 36
Регистрация: 27.11.2011
Сообщений: 713
19.08.2014, 06:27  [ТС] 6
hepper, все верно
0
Кодогенератор
200 / 200 / 51
Регистрация: 15.06.2011
Сообщений: 794
19.08.2014, 08:58 7
Цитата Сообщение от jecus Посмотреть сообщение
все верно
а используете ли mvvm? там в viewmodel обычно такие преобразования происходят
1
87 / 87 / 36
Регистрация: 27.11.2011
Сообщений: 713
19.08.2014, 11:21  [ТС] 8
hepper, каким образом?
0
Кодогенератор
200 / 200 / 51
Регистрация: 15.06.2011
Сообщений: 794
19.08.2014, 12:34 9
viewmodel проксифицирует свойства model по пути обращая их в удобоваримый вид. т.е. если и придется писать конвертеры то не для каждого совйства
1
87 / 87 / 36
Регистрация: 27.11.2011
Сообщений: 713
19.08.2014, 18:55  [ТС] 10
hepper, а что на счет переопределения метода Tostring в model?
0
Кодогенератор
200 / 200 / 51
Регистрация: 15.06.2011
Сообщений: 794
19.08.2014, 22:08 11
Цитата Сообщение от jecus Посмотреть сообщение
что на счет переопределения метода Tostring в model?
сложно сказать - зависит все от исходного вида модели и как она должна в конечном итоге отображаться.
0
87 / 87 / 36
Регистрация: 27.11.2011
Сообщений: 713
20.08.2014, 08:54  [ТС] 12
hepper, а можно пример не большой если не трудно
0
Кодогенератор
200 / 200 / 51
Регистрация: 15.06.2011
Сообщений: 794
20.08.2014, 09:57 13
вот например такой
Кликните здесь для просмотра всего текста

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
    public class PersonModel
    {
        public string Name { get; set; } //имя
 
        public string Surname { get; set; } //фамилия
 
        public int Position { get; set; } //должность
 
        public double Age {get;set;} //возраст в секундах
    }
 
    public class PersonViewModel
    {
        public PersonViewModel(PersonModel data)
        {
            PersonModel = data;
        }
 
        PersonModel _personModel;
 
        private Dictionary<int, string> positionDictionary=new Dictionary<int, string>()
                                                               {
                                                                   {0,"Царь"},{1,"Дворянин"},{2,"Купец"},{3,"Холоп"},
                                                               }; 
 
        private PersonModel PersonModel
        {
            get
            {
                return _personModel;
            }
            set
            {
                _personModel = value;
            }
 
        }
        public string Age
        {
            get
            {
                return string.Format("{0} лет", _personModel.Age/31536000);
            }
        }
         public string Surname
        {
            get
            {
                return _personModel.Surname;
            }
        }
        public String FullName
        {
            get
            {
                return string.Format("{0} {1}",_personModel.Surname,_personModel.Name);
            }
        }
 
        public String Name
        {
            get
            {
                return _personModel.Name;
            }
        }
 
        public Int32 Position //тут нужен конвертер
        {
            get
            {
                return _personModel.Position;
            }
            set
            {
                _personModel.Position = value;
            }
        }
 
        public string Position2
        {
            get
            {
                return positionDictionary[_personModel.Position];
            }
            set
            {
                if (positionDictionary.ContainsValue(value))
                _personModel.Position = positionDictionary.FirstOrDefault(f => f.Value == value.ToString()).Key;
            }
        }
    }

пример надуманный, абстрактный и не оптимальный
0
20.08.2014, 09:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.08.2014, 09:57
Помогаю со студенческими работами здесь

Что значит возвращать значение
Функция возвращает значение; функция удаляет, но не возвращает значения; Функция не возвращает...


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

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

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