@CSharpChatЭта группа больше не существует

Страница 231 из 1888
Max
13.01.2017
02:18:02
Невозможно вызвать Invoke или BeginInvoke для элемента управления до завершения создания дескриптора окна.

Max
13.01.2017
02:43:36
раньше все ок было, небыло такой хрени....

ваще понять не могу из за чего оно вылетает

Google
Дмитрий
13.01.2017
02:44:05
ну хз, что сделать-то нужно?

Max
13.01.2017
02:44:30
всмысле?

Дмитрий
13.01.2017
02:45:30
в смысле задачу свою расскажи, что сделать хочешь щас может найдем простое и элегантное решение

Max
13.01.2017
02:46:01
да я текст просто в ричтекстбокс добавляю

раньше все ок было

я там маленько поменял алгоритм начало эти ошибки сыпать

this.BeginInvoke(new Action(delegate () { richTextBoxLogFollowing.AppendText(acc.Username + ": ERROR!!" + feedResp.message + ": " + feedResp.error_type + '\n'); }));

вот таким макаром я делаю

Дмитрий
13.01.2017
02:48:19
а BeginInvoke где (в каком месте, откуда) вызываешь?

Max
13.01.2017
02:51:44
там много вызовов

Дмитрий
13.01.2017
02:52:03
ну судя по описанию ошибки, в момент выполнения анонимного метода форма ещё не до конца загрузилась

Max
13.01.2017
02:52:46
фигня в том что выполняется программа нормально лог пишется, потом в один прекрасный момент форма крашится

Дмитрий
13.01.2017
02:57:48
хм... без полного кода проекта сложно понять причину попробуй внутри анонимных методов обернуть код в try - catch и лови исключение потом смотри stack trace

Google
Max
13.01.2017
02:58:43
вроде нашел

у меня было 2 условия

и создавалась ситуация когда не выполнялось ни одно из них

и цикл просто шел и ниче не делал

но причем тут эта ошибка я хз....

щас посомтрим будут ли еще такие вылеты

странно конечно

всеравно крашится...\

Дмитрий
13.01.2017
03:04:55
магия

Max
13.01.2017
03:04:56
{"Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.\r\nИмя параметра: index"}

даж хз что там за индекс..

Дмитрий
13.01.2017
03:05:57
значит, где-то у тебя при обращении к коллекции типа List или к массиву индекс убежал за границы коллекции

Max
13.01.2017
03:07:42
в одном месте не поменял((

нашел косяк

Дмитрий
13.01.2017
03:09:41
вот и отлично :)

Vyacheslav
13.01.2017
04:31:20
ребят, подскажите как сравнить свойства объектов одного класса?

Дмитрий
13.01.2017
04:44:33
а тип у них какой?

public class SomeClass { public double SomeProperty { get; set; } } SomeClass a = new SomeClass { SomeProperty = 9000 }; SomeClass b = new SomeClass { SomeProperty = 100500 }; if (a.SomeProperty < b.SomeProperty) { // 9000 less than 100500 } else { // do something else }

Vyacheslav
13.01.2017
04:46:14
public string Server { get; set; } public int Port { get; set; } public string Userid { get; set; } public string Password { get; set; } public string[] Sample { get; set; } public Setting(string server, int port, string user, string pass, string[] sample) { Server = server; Port = port; Userid = user; Password = pass; Sample = sample; }

Google
Vyacheslav
13.01.2017
04:46:35
вот класс

Levent
13.01.2017
04:46:47
трипл` до кода, и после

будет так

Дмитрий
13.01.2017
04:46:56
ок

теперь норм?

Levent
13.01.2017
04:47:34
Да, заебись

Дмитрий
13.01.2017
04:48:17
строки можно сравнивать с помощью метода string.Compare

Vyacheslav
13.01.2017
04:48:40
а как объекты их нельзя сравнить?

Дмитрий
13.01.2017
04:48:56
see cref: https://msdn.microsoft.com/ru-ru/library/zkcaxw5y(v=vs.110).aspx

Vyacheslav
13.01.2017
04:48:57
просо никогда не сталкивался с рефлексией

Дмитрий
13.01.2017
04:49:16
кхм... а зачем тут Reflection? O_o

Vyacheslav
13.01.2017
04:49:55
ну мне надо каждое свойство этого класса сравнить у двух объектов класса

т.е. изменились данные или нет

Дмитрий
13.01.2017
04:52:02
SomeClass a = ...; SomeClass b = ...; if (a.FirstProperty != b.FirstProperty) // do something else if (a.SecondProperty != b.SecondProperty) // do something else else if (a.ThirdProperty != b.ThirdProperty) // do other action

ну или в классе переопредели метод Equals

Gid
13.01.2017
04:52:40
т.е. изменились данные или нет
Мне кажется ты не тем занимаешься

Дмитрий
13.01.2017
04:52:47
и будет if (a.Equals(b)) { // no changes } else { // has changes }

Gid
13.01.2017
04:52:55
Почитай про обсервер

Google
Gid
13.01.2017
04:53:04
Его проще реализовать

Чем страдать чем-то подобным

Дмитрий
13.01.2017
04:53:15
кстати да

вот класс
реализуй в нём интерфейс System.ComponentModel.INotifyPropertyChanged и вызывай событие PropertyChanged при изменении значения свойства (немного придётся перепилить код в геттерах и сеттерах) а класс, который должен будет узнать о том, что произошли изменения, просто должен будет подписаться на событие у экземпляра твоего класса

пример реализации на CodeProject: https://www.codeproject.com/Articles/41817/Implementing-INotifyPropertyChanged

Vyacheslav
13.01.2017
05:06:41
спасибо

Semen
13.01.2017
08:29:21
Дратути Есть глупый вопрос по UWP Есть listView, в его элементах лежит прогрессбар <DataTemplate > <Grid Height="70"> <Grid.RowDefinitions> ... </Grid.RowDefinitions> <Grid.ColumnDefinitions> ... </Grid.ColumnDefinitions> <Rectangle ... /> <TextBlock .../> <ProgressBar DataContext="{StaticResource loli}" Value="{Binding LocalProgress, Mode=TwoWay}" .../> <StackPanel ...> <TextBlock .../> <TextBlock .../> </StackPanel> <Rectangle .../> </Grid> </DataTemplate> Как сделать биндинг к прогрессбару конкретного элемента из listView?

Slava
13.01.2017
08:30:47
например, какого элемента?

Admin
ERROR: S client not available

Semen
13.01.2017
08:32:06
например, какого элемента?
Ну, одного из Item'ов в listView. Например, listView.SelectedItem

Slava
13.01.2017
08:32:48
биндинг коллекции к листвью сделал?

тут два пути: делать во вьюмодель свойство для выделенного элемента и забиндить его двусторонним биндингом на selected item

а потом это свойство биндить. Но это неправильно, т.к. прогрессбар должен работать во всех строчках листвью. Поэтому в айтеме делаются поля для прогресса и уже они биндятся

Aleksey
13.01.2017
08:35:28
StaticResource loli

Semen
13.01.2017
08:39:16
а потом это свойство биндить. Но это неправильно, т.к. прогрессбар должен работать во всех строчках листвью. Поэтому в айтеме делаются поля для прогресса и уже они биндятся
Можно подробнее чутка? Я пока не понимаю( Что значит "в айтеме делаются поля для прогресса"? Я ж не могу в замле сделать поля?

Slava
13.01.2017
08:39:41
viewmodel - это шарп

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

Semen
13.01.2017
08:42:39
То бишь я в классе делаю поле и свойство, подрубаю INotifyPropertyChanged, типа такого: public int LocalProgress { get { return localProgress; } set { localProgress = value; NotifyPropertyChanged("LocalProgress"); } } public event PropertyChangedEventHandler PropertyChanged; private void NotifyPropertyChanged([CallerMemberName] String propertyName = "") { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } }

А при смене значения вызываю PropertyChanged(LocalProgress); ?

Slava
13.01.2017
08:44:45
это в сеттере связанного с UI свойства, все правильно

Google
Slava
13.01.2017
08:45:20
при срабатывании этого события ui лезет в свойство за новыми данными

Semen
13.01.2017
08:46:15
Блин, но не работает Значит, что-то и где-то я делаю не так( Лан, спасибо, буду разбираться и искать, где ошибка

Точнее как: работает, но для всех Item'ов из listView одновременно

Slava
13.01.2017
08:48:19
а это тот первый вариант который я писал. делай вариант номер два

ты одно свойство на всё забиндил, вот оно и показывает везде. логично

Semen
13.01.2017
08:51:28
Но я ж не могу создать свойства для всех айтемов Их кол-во в процессе работы меняется

Slava
13.01.2017
08:51:59
поэтому в то что биндишь на айтем добавляется свойство с прогрессом

интом

и меняешь прогресс таким образом в каждом айтеме

Semen
13.01.2017
08:53:50
Бля, я тупой видать, не понимаю( Можешь пример какой-нить придумать?

Slava
13.01.2017
08:58:04
Гугли про MVMM и например скачивание файлов

Дмитрий
13.01.2017
09:04:41
как я бы себе это представил: есть viewmodel, представляющая коллекцию каких-то элементов у неё внутри есть поле ObservableCollection<SomethingViewModel> на эту коллекцию биндятся элементы ListView соответственно, мы можем добавлять и удалять элементы, при этом будет изменяться содержимое ListView для отображения элемента есть DataTemplate с ProgressBar-ом внутри ProgressBar биндится на свойство SomethingViewModel public int SomeProgress { get { return _someProgress; } private set { _someProgress = value; RaisePropertyChanged(); // << тут CallerMemberName и имя свойства можно не писать } } соответственно, у каждого элемента в ListView будет свой прогресс-бар со своим прогрессом, который будет изменяться на уровне модели... дальше мысль понятна

Slava
13.01.2017
09:06:48
Верно. Можно еще foddy propertychanged прикрутить и RaisePropertyChanged(); не писать.

Дмитрий
13.01.2017
09:07:37
есть вопрос кто-нибудь пробовал пилить бота на платформе Microsoft Bot Framework? интересует, как через неё можно в том же телеграме организовать "нижние кнопки"

Сергей
13.01.2017
13:00:37
есть вопрос кто-нибудь пробовал пилить бота на платформе Microsoft Bot Framework? интересует, как через неё можно в том же телеграме организовать "нижние кнопки"
Скорее всего никак. Их фреймворк это обобщенный "интерфейс" для различных ботов. Т.е. узкоспециальные фичи каждой платформы там не запилишь.

Ну, так было месяца 3 назад

Slava
13.01.2017
13:01:27
https://docs.botframework.com/en-us/csharp/builder/sdkreference/channels.html Нужно только сообщение правильно отправить, хотя я не пробовал

Сергей
13.01.2017
13:02:24
А

Ну раз можно вызывать кастомные методы апи таким образом, то все возможно

Страница 231 из 1888

Эта группа больше не существует Эта группа больше не существует