﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/css' href='https://stocksharp.com/css/style.css'?>
<?xml-stylesheet type='text/css' href='https://stocksharp.com/css/bbeditor.css'?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">Событие при изменении данных в таблице "Инструменты"</title>
  <id>~/topic/886/sobytie-pri-izmenenii-dannyh-v-tablitse-instrumenty/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-07T03:51:58Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=886" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/1663/</id>
    <title type="text">Вот, то, что нужно! только не securities.Find , а securities.First работает... Спасибо! </title>
    <published>2010-02-03T17:53:00Z</published>
    <updated>2010-02-03T17:53:00Z</updated>
    <author>
      <name>AndreiFX</name>
      <uri>https://stocksharp.com/users/28035/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Вот, то, что нужно!
только не  securities.Find , а   securities.First работает...
Спасибо!&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/1662/</id>
    <title type="text">Сорри, дошло. Сам класс Security реализует для визуального обновления интерфейс INotifyPropertyChang...</title>
    <published>2010-02-03T14:38:00Z</published>
    <updated>2010-02-03T14:38:00Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Сорри, дошло.&lt;/p&gt;
&lt;p&gt;Сам класс Security реализует для визуального обновления интерфейс
INotifyPropertyChanged. Именно его и использую виз. компоненты для
обновления данных. Тоесть, Вам нужно найти нужный инструмент и
подписаться у него на событие PropertyChanged. Тоесть:&lt;/p&gt;
&lt;p&gt;this.Trader.NewSecurities += securities =&amp;gt;
{
var sec = securities.Find(s =&amp;gt; s.Code == &amp;quot;fgfghghgjh&amp;quot;);
((INotifyPropertyChanged)sec).PropertyChanged += delegate
{ MessageBox.Show(&amp;quot;обновление данных&amp;quot;); };&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/1661/</id>
    <title type="text">Забыл сказать, что этот код я прописал в процедуре при нажатии на кнопку connect, т.е. там же, где п...</title>
    <published>2010-02-03T13:58:00Z</published>
    <updated>2010-02-03T13:58:00Z</updated>
    <author>
      <name>AndreiFX</name>
      <uri>https://stocksharp.com/users/28035/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Забыл сказать, что этот код я прописал в процедуре при нажатии на
кнопку connect, т.е. там же, где подписываемся на все остальные события
(из Вашего примера)&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/1660/</id>
    <title type="text">Securities.CollectionChanged += (X, Y) =&amp;gt; { MessageBox.Show(&amp;quot;обновление данных&amp;quot;); }; однако месадж б...</title>
    <published>2010-02-03T12:47:00Z</published>
    <updated>2010-02-03T12:47:00Z</updated>
    <author>
      <name>AndreiFX</name>
      <uri>https://stocksharp.com/users/28035/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Securities.CollectionChanged += (X, Y) =&amp;gt;
{&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;                      MessageBox.Show(&amp;quot;обновление данных&amp;quot;);

                   };
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;однако месадж бокс выскакивает всего один раз при первом обновлении
данных&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/1659/</id>
    <title type="text">CollectionChanged должен работать. Именно на основе его контрол Grid перерисовывает новые значения. ...</title>
    <published>2010-02-03T12:18:00Z</published>
    <updated>2010-02-03T12:18:00Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;CollectionChanged должен работать. Именно на основе его контрол Grid
перерисовывает новые значения. Почему Вы решили, что оно не
срабатывает у Вас? Как Вы написали код работы с событием (+
обработчик)?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/1658/</id>
    <title type="text">Я имел ввиду, что Securities в моем примере(также как и у вас в примере) - это экземпляр класса Obse...</title>
    <published>2010-02-03T11:35:00Z</published>
    <updated>2010-02-03T11:35:00Z</updated>
    <author>
      <name>AndreiFX</name>
      <uri>https://stocksharp.com/users/28035/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Я имел ввиду, что Securities в моем примере(также как и у вас в
примере) - это экземпляр класса ObservableCollection, в которое
заносим данные здесь
this.Trader.NewSecurities += securities =&amp;gt;
{
this.Sync(() =&amp;gt; this.Securities.AddRange
(securities));&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;                   };
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Это событие работает нормально,также данные в таблицу, связанную с
Securities идут корректно, обновляются и т.д., но мне нужно именно
событие, которое генерируется, когда не только появляется новый
элемент в коллекции, а когда происходит какое либо изменение...вообщем
будем ждать следующего релиза.
Спасибо&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/1657/</id>
    <title type="text">Сразу обозначу определения. ObservableCollection - это специальный класс-коллекция для визуального о...</title>
    <published>2010-02-02T20:06:00Z</published>
    <updated>2010-02-02T20:06:00Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Сразу обозначу определения. ObservableCollection - это специальный
класс-коллекция для визуального отображения. Никакого отношения к
торговым объектам она не имеет. Так уж получилось, что ее можно
использовать для этих средств (очень странно что не вызывается
событие, у меня то как раз в примере все нормально).&lt;/p&gt;
&lt;p&gt;Еще хотел сказать. Вы в курсе, что QuikTrader работает в многопоточном
режиме? Это означает, что из событий этого класса напрямую нельзя
обращатся к визуальным контролам? Подробности -&lt;/p&gt;
&lt;p&gt;&lt;a href="http://sergeyteplyakov.blogspot.com/2009/03/windows-forms-controlinvoke.html" rel="nofollow" target="_blank"&gt;http://sergeyteplyakov.blogspot.com/2009/03/windows-forms-controlinvoke.html&lt;/a&gt;.
У меня есть вспогательный классы SynchronizedObservableList и
XamlHelper.SyncXXX (первый использует второе).&lt;/p&gt;
&lt;p&gt;Я не делал событие SecuritiesChanged из-за того, что не думал, что кто-
то будет работать на неликвидах. С ликвидами такое событие просто не
нужно. Так как Вас запрос не единственный по поводу такого события, я
его уже добавил в след. версию. Сейчас она на стадии стабилизации,
затем допишу примеры и подправлю документацию. Думаю, будет готова в
конце недели.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/1656/</id>
    <title type="text">Подскажите пожалуйста как можно получить событие, которое происходит именно при изменении данных в т...</title>
    <published>2010-02-02T18:54:00Z</published>
    <updated>2010-02-02T18:54:00Z</updated>
    <author>
      <name>AndreiFX</name>
      <uri>https://stocksharp.com/users/28035/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Подскажите пожалуйста как можно получить событие, которое происходит
именно при изменении данных в таблице &amp;quot;Инструменты&amp;quot;
NewSecurities конечно не подходит
Пробовал вот так
Securities.CollectionChanged += (X, Y) =&amp;gt;
{&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;                   };
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;где Securities это коллекция типа ObservableCollection
Но все равно происходит это событие один раз при загрузке данных через
дде,дальше молчит.
Может быть подскажите путь решения?
..вообще это мне надо для того, чтобы проверять некоторые условия на
каждом тике, а через событие NewTrades делать не хочется, т.к. там еще
история генерирует это событие.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>