• Как биндить Generic VM?

    @Meloman19
    LiptonOlolo, судя по коду вы пытаетесь сделать привязку к статическому свойству, которого у вас нет. Если подразумевается, что DataContext будет реализовывать этот интерфейс, то делайте обычный байндинг Command="{Binding AddCommand}".
    Для байндинга без разницы откуда возьмётся это свойство, главное, чтобы оно было у экземпляра класса, находящегося в DataContext.
    Написано
  • Почему метод ToString не рабоатет?

    @Meloman19
    keddad, это же структуры, они всегда принимают значения по умолчанию)
    Написано
  • Как правильно создать DLL?

    @Meloman19
    Тоже не вижу каких-либо видимых проблем. Разве только почему void Summ, а не int Summ?
    Написано
  • В чем проблема с async/await?

    @Meloman19
    DownloadAsync возвращает RevisionInfo. Поставьте там бряку и убедитесь, что браузер вообще скачался (там свойство есть) - это раз. Так же убедитесь, что вы пытаетесь запустить браузер по тому же пути, что прописан в том же RevisionInfo - это два. В таком простом случае async/await не может не работать.
    Написано
  • При многопоточной работе исключена вероятность одновременнего доступа к ресурсам?

    @Meloman19
    Михаил, нет, вы ошиблись. Более того, потоки могут в одно и то же время выполнять один и тот же метод. Метод - всего лишь абстракция, для процессора это всё сплошной поток машинных кодов.
  • Как связать свойство Command Parameter у Context Menu со свойством Name у TextBox, к которому это меню привязано?

    @Meloman19
    Space Purr, новый, но один единственный. Реализаций Command и так полно в инете (RelayCommand).
  • Как связать свойство Command Parameter у Context Menu со свойством Name у TextBox, к которому это меню привязано?

    @Meloman19
    Space Purr, есть ещё один простой вариант.

    Измените ваш ресурс так:
    <ContextMenu x:Key="MyContexMenu" ItemsSource="{Binding Companies}" >
       <ContextMenu.ItemContainerStyle>
          <Style TargetType="{x:Type MenuItem}">
             <Setter Property="ItemsSource" Value="{Binding Workers}"/>
             <Setter Property="Header" Value="{Binding CompanyName}"/>
             <Setter Property="ItemContainerStyle">
                <Setter.Value>
                   <Style TargetType="{x:Type MenuItem}">
                      <Setter Property="Header" Value="{Binding Name}"/>
                      <Setter Property="Command" Value="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ContextMenu}, Path=DataContext.CMCommand}"/>
                      <Setter Property="CommandParameter" Value="{Binding RelativeSource={RelativeSource Self}, Path=DataContext}"/>
                   </Style>
                </Setter.Value>
             </Setter>
          </Style>
       </ContextMenu.ItemContainerStyle>
    </ContextMenu>

    (Могут быть ошибки, потому что с телефона пишу)
    В вашей основной VM, где лежит коллекция компаний создаёте ICommand CMCommand.

    Это запутанный будет, но по сути делает то же самое. При клике будет вызываться CMCommand, где в качестве аргумента будет экземпляр класса, к которому привязана MenuItem.
  • Как связать свойство Command Parameter у Context Menu со свойством Name у TextBox, к которому это меню привязано?

    @Meloman19
    Со StaticResource - делайте как хотите, это всего лишь стиль, который вы вынесли, не более того. А вот передачу параметра можно и через события реализовать в самом коде.

    В Worker делаете событие с сигнатурой 'void(Worker)' (как делать события, разберётесь?). В классе Company делаете такое же событие. Теперь при заполнении коллекции Worker, в Company, подписывается на событие каждого элемента. То же самое делаете с коллекцией Company. В Worker оставляете ICommand, но единственно, что он будет делать это вызывать событие и передавать в качестве аргумента себя (экземпляр Worker). На это событие будет реагировать Company, которое будет вызывать соответствующее событие у себя с этим же аргументов. Во внешнем коде в результате вы получаете конкретный экземпляр Worker и уже делаете, что хотите (обрабатывайте в ContextMenuClick, которое лучше снаружи класса держать).
  • Как остановить поток?

    @Meloman19
    Поток не убивается сразу, это не просто мгновенная остановка и убивание потока. Посылается асинхронное исключение, которое лишь может вклиниться в код, если это возможно. После вызова, если требуется дождаться завершения, то нужно так же ждать Join вызывая. И Abort вообще убивает поток без возможности перезапуска, так что последующий Start не сработает.

    Пример, как должен выглядеть метод, который можно остановиться можно посмотреть в официальной документации:
    https://docs.microsoft.com/ru-ru/dotnet/api/system...
  • Доступ к контролу из другого потока?

    @Meloman19
    Сергей Карбивничий, вообще, то как вы сделали - не ошибка. Другие потоки не могут работать с контролами, но с переменными отдельными уже без проблем. Поэтому в общем-то можно и в отдельную переменную вынести только lv.FocusItem.SubItems[0].Text, а получение из бд и воспроизведение уже оставит на новый поток.
  • Доступ к контролу из другого потока?

    @Meloman19
    У формы есть метод Invoke. В него передавай код, который должен выполняться в потоке UI, там уже можно что угодно делать с UI. Только передавай туда методы, которые будут только менять форму, а не весь код, иначе весь твой код будет в потоке UI выполняться.
  • Фокус с делегатом. Как его исполнить?

    @Meloman19
    Петр, а это разве не очевидно было? Пробросить вы его можете, но чтобы получить результат нужно хоть какое-то значение параметра.

    Можете передавать в метод и делегат, и параметр одновременно и вызывать внутри. Или не нужно пробрасывать делегат, а кидайте только результат выполнения. Или пишите класс обёртку, в который будет засунут и сам делегат и его параметр. В любом случае, получить результат выполнения без хоть какого-то параметра не получится.
  • Как быстро парсить ссылки на портале?

    @Meloman19
    Вы просто не знаете одной особенности HttpWebRequest: максимальное количество одновременных запросов до одного хоста = 2. Это стандартное значение. Потому у вас и увеличилась скорость в 2 раза. Можно тут почитать.

    Конечно, можно увеличить максимальное количество: ServicePointManager.DefaultConnectionLimit.
    Но я бы порекомендовал начать работать с HttpClient.
  • Как на C# запустить поочередно несколько потоков (РЕШЕНО)?

    @Meloman19
    Алкаш Трудоголиков, вы просто в тексте запутываете людей словами "следующий поток должен дожидаться предыдущий". Это и есть обычное последовательное выполнение. Я так понял вы хотите вывод результата сделать последовательным, однако сама работа (Thread.Sleep) всё же должна выполняться паралельно.

    Для начала, у вас грубая ошибка - вы свою полезную работу делаете в делегате, который передаёте окну. Эта работа будет выполняться в потоке окна! Вынесите работу за пределы делегата, а в Invoke только вывод результата оставьте.
    А так, лучше сразу всё в Task оборачивать (вместо QueueUserWorkItem), так проще становится. В таком случае вы можете в каждый последующий Task передавать предыдущий и в нём, после полезной работы вызывать Task.Wait(), что отсрочит вызов вывода значения. Это по крайней мере в пределах вашей задачи сразу приходит на ум.
  • Как маппить пакеты по opcode?

    @Meloman19
    Мне интересно, а как вы дальше будете работать с полученным объектом?
    Предположим, вы написали метод, который по opcode создаёт экземпляр конкретного класса из данных. Как вы его возвращать будете? Как object или как базовый абстрактный класс?
  • Не подключаются System в Xamarin?

    @Meloman19
    Попробуй просто подождать, пока не пропадёт желтый восклицательный знак около "Зависимостей" в основном проекте, которое с именем решения (не App.Android или App.iOs).
    Аналогичная фигня происходила и иногда происходит, когда уже готовое решение запускаю. Видимо студия проверяет какие-то зависимости или что-то кэширует - не знаю, но через некоторое время всё становится нормально.
  • Как обработать событие из DataTemplate нажатия радиокнопок?

    @Meloman19
    Михаил Усоцкий, да, Алексей Павлов верно намекает, что должно быть у вас реализованно. Покопайтесь в этом направлении - он правильный.
    Если не получится, то исправляйте вопрос и добавляйте так же код ViewModel.
    А вообще, убедитесь, что у вас привязка вообще работает, попробовав вставить что-нибудь в Label.
  • Как обработать событие из DataTemplate нажатия радиокнопок?

    @Meloman19
    У RadioButton есть свойство IsChecked, к нему и привязываетесь двусторонней привязкой. Так и отлавливайте изменение состояния.
  • Как вызвать метод, передав аргументы так, чтобы vs не ругался?

    @Meloman19
    Ilya199, вы не поняли, что вам пытаются сказать. Типы объявляются только тогда, когда метод объявляют, а не вызывают. Чтобы вызвать: типы нужно убирать.
    Объявление:
    KeyDown(object sender, KeyEventArgs e)
    {
       ///Тут код
    }

    Вызов метода:
    KeyDown(sender, e);