<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=48&amp;t=10169&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-01-23T21:37:58+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=48&amp;t=10169&amp;mode</id>
<entry>
<author><name><![CDATA[Federerer]]></name></author>
<updated>2015-01-23T21:37:58+01:00</updated>
<published>2015-01-23T21:37:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=115563#p115563</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=115563#p115563"/>
<title type="html"><![CDATA[Re: Tree view &quot;zagnieżdzony&quot;]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=115563#p115563"><![CDATA[
Stanęło na DataGrid z grupowaniem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Komunikacja powoli rusza (póki co w jedną stronę, bez kontroli błędów i potwierdzeń). Na poradnik umiem chyba za mało, ale miło, że się podoba <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Dużo cennej wiedzy znalazłem na StackOverflow. Teraz muszę wrócić do mikrokontrolera i wykombinować jak całą tą konfigurację zapisywać we flashu, żeby po odłączeniu zasilania nie programować wszystkiego od nowa <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Jakość telefoniczna:<br /><div style="width: 583px; height: 471px; margin: 0 auto; padding-left: 26px; padding-top: 48px; background: url('https://www.atnel.pl/download/atnel_tv.png') no-repeat;"> <strong>iframe</strong> </div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4440">Federerer</a> — 23 sty 2015, o 21:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RafPe]]></name></author>
<updated>2015-01-19T10:38:39+01:00</updated>
<published>2015-01-19T10:38:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=114851#p114851</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=114851#p114851"/>
<title type="html"><![CDATA[Re: Tree view &quot;zagnieżdzony&quot;]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=114851#p114851"><![CDATA[
Bardzo fajne <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Moze jakis poradniczek dla potomnych napisz o WPF + DataContext z TreeView <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> ? Bo mysle , ze duzo projektow moglo by na tym skorzystac<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4344">RafPe</a> — 19 sty 2015, o 10:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2015-01-19T09:45:45+01:00</updated>
<published>2015-01-19T09:45:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=114846#p114846</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=114846#p114846"/>
<title type="html"><![CDATA[Re: Tree view &quot;zagnieżdzony&quot;]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=114846#p114846"><![CDATA[
Ładny design <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />daj znać czy komunikujesz się już z uC<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 19 sty 2015, o 09:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Federerer]]></name></author>
<updated>2015-01-19T03:19:41+01:00</updated>
<published>2015-01-19T03:19:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=114843#p114843</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=114843#p114843"/>
<title type="html"><![CDATA[Re: Tree view &quot;zagnieżdzony&quot;]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=114843#p114843"><![CDATA[
Ogarnięte, zostałem właśnie fanem WPF'a <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><a href="http://forum.atnel.pl/_obrazki/o/4440/cdfd64c61689c35dd15ca64df7d53352.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/4440/cdfd64c61689c35dd15ca64df7d53352.png" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4440">Federerer</a> — 19 sty 2015, o 03:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Federerer]]></name></author>
<updated>2015-01-18T16:55:51+01:00</updated>
<published>2015-01-18T16:55:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=114768#p114768</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=114768#p114768"/>
<title type="html"><![CDATA[Re: Tree view &quot;zagnieżdzony&quot;]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=114768#p114768"><![CDATA[
Bez przesady <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Po nocnej sesji udało się popracować nad stylami i trochę uporządkować. Teraz okno dopasowuje się do rozmiarów tabeli w poziomie, a w pionie pokazuje się pasek. Ogarnę jeszcze grupowanie po nazwie i mogę brać się za komunikację i część siedzącą w mikrokontrolerze. <br /><a href="http://forum.atnel.pl/_obrazki/o/4440/596243e0c8f1c0667e449caa87322a6a.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/4440/596243e0c8f1c0667e449caa87322a6a.png" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4440">Federerer</a> — 18 sty 2015, o 16:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RafPe]]></name></author>
<updated>2015-01-17T20:46:19+01:00</updated>
<published>2015-01-17T20:46:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=114603#p114603</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=114603#p114603"/>
<title type="html"><![CDATA[Re: Tree view &quot;zagnieżdzony&quot;]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=114603#p114603"><![CDATA[
Wyglada PRO <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> jesli zobacze cosik co moglbym podpowiedziec to od razu dam Ci znac <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> ale cos czuje , ze niedlugo Ciebie bede pytac o porady <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4344">RafPe</a> — 17 sty 2015, o 20:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Federerer]]></name></author>
<updated>2015-01-17T18:19:52+01:00</updated>
<published>2015-01-17T18:19:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=114576#p114576</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=114576#p114576"/>
<title type="html"><![CDATA[Re: Tree view &quot;zagnieżdzony&quot;]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=114576#p114576"><![CDATA[
Powoli coś zaczyna wychodzić, do tej pory korzystałem z WinForms pod VisualBasic więc tempo pisania mam takie sobie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Zmieniłem lekko koncepcje i użyłem DataGrid i ComboBoxów. Prezentuje się póki co przeciętnie (nad wyglądem popracuje na koniec):<br /><a href="http://forum.atnel.pl/_obrazki/o/4440/5100beec21670199c06a135e05753ec4.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/4440/5100beec21670199c06a135e05753ec4.png" alt="Obrazek" /></a><br />Na dole widać wartości binarne, które będą wysyłane do mikrokontrolera. DataContext udało mi się w końcu ustawić, ale zielonego pojęcia nie mam czy robię to poprawnie, byłbym wdzięczny jakby ktoś zerknął i poprawił <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Kod:<br />[syntax=csharp]using System.Collections.ObjectModel;<br />using System.ComponentModel;<br />using System.Windows;<br />using System;<br /><br />namespace WPFCollections<br />{<br />    public partial class MainWindow : Window<br />    {<br />        SemaphoreDriver Driver1 = new SemaphoreDriver();<br />        <br />        public MainWindow()<br />        {<br />            <br />            this.InitializeComponent();<br />            dg.ItemsSource = Driver1.Signals;<br />            <br />        }<br /><br />        private void button1_Click_1(object sender, RoutedEventArgs e)<br />        {<br />            Driver1.AddNewSignal();<br />        }<br /><br />        private void dg_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)<br />        {<br />            con conf = new con();<br />            int idx = dg.SelectedIndex;<br />            if (idx &lt; 0) idx = 0;<br /><br />            for (int x = 0; x &lt; 16; x++)<br />            {<br />                if (Driver1.Signals&#91;idx&#93;.SelectedUse&#91;x&#93;.Value &gt; 0)<br />                {<br />                    conf.mask |= (ushort)(1 &lt;&lt; x);<br />                    if (Driver1.Signals&#91;idx&#93;.SelectedUse&#91;x&#93;.Value == 1) conf.on |= (ushort)(1 &lt;&lt; x);<br />                    if (Driver1.Signals&#91;idx&#93;.SelectedUse&#91;x&#93;.Value == 3) conf.blink |= (ushort)(1 &lt;&lt; x);<br />                }<br />            }<br /><br />            textBlock1.Text = Convert.ToString(conf.mask, 2).PadLeft(16, '0') + Environment.NewLine +<br />                              Convert.ToString(conf.on, 2).PadLeft(16, '0') + Environment.NewLine +<br />                              Convert.ToString(conf.blink, 2).PadLeft(16, '0');<br />        }<br /><br />        private void button2_Click(object sender, RoutedEventArgs e)<br />        {<br /><br />        }<br /><br />    }<br /><br /><br />    public class SemaphoreDriver : INotifyPropertyChanged<br />    {<br />        private ObservableCollection&lt;Signal&gt; m_signals = new ObservableCollection&lt;Signal&gt;();<br />        public ObservableCollection&lt;Signal&gt; Signals { get { return m_signals; } }<br /><br />        private ObservableCollection&lt;State&gt; m_states = new ObservableCollection&lt;State&gt;()<br />                { new State { Name = &quot;-&quot;, Value = 0 }, new State { Name = &quot;on&quot;, Value = 1 },<br />                  new State { Name = &quot;off&quot;, Value = 2 }, new State { Name = &quot;blink&quot;, Value = 3 } };<br /><br />        public ObservableCollection&lt;State&gt; states { get { return m_states; } }<br /><br />        private ObservableCollection&lt;State&gt; m_default = new ObservableCollection&lt;State&gt;()<br />                {<br />                    new State { Name = &quot;-&quot;, Value = 0 }, new State { Name = &quot;-&quot;, Value = 0 },<br />                    new State { Name = &quot;-&quot;, Value = 0 }, new State { Name = &quot;-&quot;, Value = 0 },<br />                    new State { Name = &quot;-&quot;, Value = 0 }, new State { Name = &quot;-&quot;, Value = 0 },<br />                    new State { Name = &quot;-&quot;, Value = 0 }, new State { Name = &quot;-&quot;, Value = 0 },<br />                    new State { Name = &quot;-&quot;, Value = 0 }, new State { Name = &quot;-&quot;, Value = 0 },<br />                    new State { Name = &quot;-&quot;, Value = 0 }, new State { Name = &quot;-&quot;, Value = 0 },<br />                    new State { Name = &quot;-&quot;, Value = 0 }, new State { Name = &quot;-&quot;, Value = 0 },<br />                    new State { Name = &quot;-&quot;, Value = 0 }, new State { Name = &quot;-&quot;, Value = 0 },<br />                };<br />        public ObservableCollection&lt;State&gt; Default { get { return m_default; } }<br /><br />        public SemaphoreDriver()<br />        {<br />            AddNewSignal();<br />        }<br /><br />        public void AddNewSignal()<br />        {<br />            Signal signal1 = new Signal() { Name = &quot;Sem&quot;, Number = &quot;0&quot;, States = states, SelectedUse = new ObservableCollection&lt;State&gt;(Default)};<br />            Signals.Add(signal1);<br />        }<br /><br />        public event PropertyChangedEventHandler PropertyChanged;<br />        public void OnPropertyChanged(string propertyName) { PropertyChangedEventHandler handler = PropertyChanged; if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName)); }<br />    }<br /><br /><br />    public class State : INotifyPropertyChanged<br />    {<br />        private string m_name;<br />        public string Name { get { return m_name; } set { m_name = value; OnPropertyChanged(&quot;Name&quot;); } }<br /><br />        private int m_value;<br />        public int Value { get { return m_value; } set { m_value = value; OnPropertyChanged(&quot;Value&quot;); } }<br /><br />        public event PropertyChangedEventHandler PropertyChanged;<br />        public void OnPropertyChanged(string propertyName) { PropertyChangedEventHandler handler = PropertyChanged; if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName)); }<br />    }<br /><br /><br />    public class Signal : INotifyPropertyChanged<br />    {<br />        private string m_name = &quot;None&quot;;<br />        public string Name { get { return m_name; } set { m_name = value; OnPropertyChanged(&quot;Name&quot;); } }<br /><br />        private string number = &quot;0&quot;;<br />        public string Number { get { return number; } set { number = value; OnPropertyChanged(&quot;SignalType&quot;); } }<br /><br />        public ObservableCollection&lt;State&gt; States { get; set; }<br /><br />        private ObservableCollection&lt;State&gt; m_use = new ObservableCollection&lt;State&gt;();<br /><br />        public ObservableCollection&lt;State&gt; SelectedUse { get { return m_use; } set { m_use = value; OnPropertyChanged(&quot;SelectedUse&quot;); } }<br /><br />        public event PropertyChangedEventHandler PropertyChanged;<br />        public void OnPropertyChanged(string propertyName) { PropertyChangedEventHandler handler = PropertyChanged; if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName)); }<br />    }<br /><br />    public struct con<br />    {<br />        public ushort mask;<br />        public ushort on;<br />        public ushort blink;<br />    }<br />}[/syntax]<br /><br />xaml:<br />[syntax=xml]&lt;Window<br />xmlns=&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot;<br />xmlns:x=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;<br />xmlns:local=&quot;clr-namespace:WPFCollections&quot; <br />xmlns:mc=&quot;http://schemas.openxmlformats.org/markup-compatibility/2006&quot; <br />x:Class=&quot;WPFCollections.MainWindow&quot;<br />x:Name=&quot;Window&quot;<br />Title=&quot;Sterownik semaforów&quot;<br />Width=&quot;600&quot; Height=&quot;500&quot; MaxWidth=&quot;800&quot; MaxHeight=&quot;Infinity&quot; MinWidth=&quot;600&quot; MinHeight=&quot;300&quot;&gt;<br /><br /><br /><br />    &lt;Grid x:Name=&quot;LayoutRoot&quot;&gt;<br />        &lt;DataGrid x:Name=&quot;dg&quot; GridLinesVisibility=&quot;None&quot; Margin=&quot;0,0,0,150&quot; AutoGenerateColumns=&quot;False&quot; CanUserAddRows=&quot;False&quot; HorizontalContentAlignment=&quot;Center&quot; VerticalContentAlignment=&quot;Center&quot; SelectionChanged=&quot;dg_SelectionChanged&quot; SelectionUnit=&quot;FullRow&quot; SelectionMode=&quot;Single&quot; VerticalAlignment=&quot;Top&quot; Block.TextAlignment=&quot;Center&quot;&gt;<br />            &lt;DataGrid.CellStyle&gt;<br />                &lt;Style TargetType=&quot;DataGridCell&quot;&gt;<br />                    &lt;Style.Triggers&gt;<br />                        &lt;Trigger Property=&quot;IsSelected&quot; Value=&quot;True&quot;&gt;<br />                            &lt;Setter Property=&quot;Background&quot; Value=&quot;#F1F1F1&quot;&gt;<br />                            &lt;/Setter&gt;<br />                            &lt;Setter Property=&quot;Foreground&quot; Value=&quot;Black&quot; /&gt;<br />                        &lt;/Trigger&gt;<br />                    &lt;/Style.Triggers&gt;<br />                &lt;/Style&gt;<br />            &lt;/DataGrid.CellStyle&gt;<br />            &lt;DataGrid.RowStyle&gt;<br />                &lt;Style TargetType=&quot;DataGridRow&quot;&gt;<br />                    &lt;Style.Triggers&gt;<br />                        &lt;Trigger Property=&quot;IsSelected&quot; Value=&quot;True&quot;&gt;<br />                            &lt;Setter Property=&quot;Background&quot; Value=&quot;LightGray&quot;&gt;<br />                            &lt;/Setter&gt;<br />                        &lt;/Trigger&gt;<br />                    &lt;/Style.Triggers&gt;<br />                &lt;/Style&gt;<br />            &lt;/DataGrid.RowStyle&gt;<br />            &lt;DataGrid.Columns&gt;<br />                &lt;DataGridTextColumn Binding=&quot;{Binding Name}&quot; Header=&quot;Nazwa&quot;&gt;<br />                &lt;/DataGridTextColumn&gt;<br />                &lt;DataGridTextColumn Binding=&quot;{Binding Number}&quot; Header=&quot;Rozkaz&quot; ClipboardContentBinding=&quot;{Binding}&quot; /&gt;<br />                &lt;DataGridTemplateColumn Header=&quot;Out1&quot; CanUserResize=&quot;False&quot; Width=&quot;54&quot;&gt;<br />                    &lt;DataGridTemplateColumn.CellTemplate&gt;<br />                        &lt;DataTemplate&gt;<br />                            &lt;ComboBox ItemsSource=&quot;{Binding States}&quot; SelectedItem=&quot;{Binding SelectedUse&#91;0&#93;, UpdateSourceTrigger=PropertyChanged}&quot; DisplayMemberPath=&quot;Name&quot; IsSynchronizedWithCurrentItem=&quot;{x:Null}&quot; SelectedIndex=&quot;0&quot; /&gt;<br />                        &lt;/DataTemplate&gt;<br />                    &lt;/DataGridTemplateColumn.CellTemplate&gt;<br />                &lt;/DataGridTemplateColumn&gt;<br />                &lt;DataGridTemplateColumn Header=&quot;Out2&quot; CanUserResize=&quot;False&quot; Width=&quot;54&quot;&gt;<br />                    &lt;DataGridTemplateColumn.CellTemplate&gt;<br />                        &lt;DataTemplate&gt;<br />                            &lt;ComboBox ItemsSource=&quot;{Binding States}&quot; SelectedItem=&quot;{Binding SelectedUse&#91;1&#93;, UpdateSourceTrigger=PropertyChanged}&quot; DisplayMemberPath=&quot;Name&quot; Name=&quot;cb2&quot; IsSynchronizedWithCurrentItem=&quot;{x:Null}&quot; SelectedIndex=&quot;0&quot; /&gt;<br />                        &lt;/DataTemplate&gt;<br />                    &lt;/DataGridTemplateColumn.CellTemplate&gt;<br />                &lt;/DataGridTemplateColumn&gt;<br />                &lt;DataGridTemplateColumn Header=&quot;Out3&quot; CanUserResize=&quot;False&quot; Width=&quot;54&quot;&gt;<br />                    &lt;DataGridTemplateColumn.CellTemplate&gt;<br />                        &lt;DataTemplate&gt;<br />                            &lt;ComboBox ItemsSource=&quot;{Binding States}&quot; SelectedItem=&quot;{Binding SelectedUse&#91;2&#93;, UpdateSourceTrigger=PropertyChanged}&quot; DisplayMemberPath=&quot;Name&quot; Name=&quot;cb2&quot; IsSynchronizedWithCurrentItem=&quot;{x:Null}&quot; SelectedIndex=&quot;0&quot; /&gt;<br />                        &lt;/DataTemplate&gt;<br />                    &lt;/DataGridTemplateColumn.CellTemplate&gt;<br />                &lt;/DataGridTemplateColumn&gt;<br />                &lt;DataGridTemplateColumn Header=&quot;Out4&quot; CanUserResize=&quot;False&quot; Width=&quot;54&quot;&gt;<br />                    &lt;DataGridTemplateColumn.CellTemplate&gt;<br />                        &lt;DataTemplate&gt;<br />                            &lt;ComboBox ItemsSource=&quot;{Binding States}&quot; SelectedItem=&quot;{Binding SelectedUse&#91;3&#93;, UpdateSourceTrigger=PropertyChanged}&quot; DisplayMemberPath=&quot;Name&quot; Name=&quot;cb2&quot; IsSynchronizedWithCurrentItem=&quot;{x:Null}&quot; SelectedIndex=&quot;0&quot; /&gt;<br />                        &lt;/DataTemplate&gt;<br />                    &lt;/DataGridTemplateColumn.CellTemplate&gt;<br />                &lt;/DataGridTemplateColumn&gt;<br />                &lt;DataGridTemplateColumn Header=&quot;Out5&quot; CanUserResize=&quot;False&quot; Width=&quot;54&quot;&gt;<br />                    &lt;DataGridTemplateColumn.CellTemplate&gt;<br />                        &lt;DataTemplate&gt;<br />                            &lt;ComboBox ItemsSource=&quot;{Binding States}&quot; SelectedItem=&quot;{Binding SelectedUse&#91;4&#93;, UpdateSourceTrigger=PropertyChanged}&quot; DisplayMemberPath=&quot;Name&quot; Name=&quot;cb2&quot; IsSynchronizedWithCurrentItem=&quot;{x:Null}&quot; SelectedIndex=&quot;0&quot; /&gt;<br />                        &lt;/DataTemplate&gt;<br />                    &lt;/DataGridTemplateColumn.CellTemplate&gt;<br />                &lt;/DataGridTemplateColumn&gt;<br />                &lt;DataGridTemplateColumn Header=&quot;Out6&quot; CanUserResize=&quot;False&quot; Width=&quot;54&quot;&gt;<br />                    &lt;DataGridTemplateColumn.CellTemplate&gt;<br />                        &lt;DataTemplate&gt;<br />                            &lt;ComboBox ItemsSource=&quot;{Binding States}&quot; SelectedItem=&quot;{Binding SelectedUse&#91;5&#93;, UpdateSourceTrigger=PropertyChanged}&quot; DisplayMemberPath=&quot;Name&quot; Name=&quot;cb2&quot; IsSynchronizedWithCurrentItem=&quot;{x:Null}&quot; SelectedIndex=&quot;0&quot; /&gt;<br />                        &lt;/DataTemplate&gt;<br />                    &lt;/DataGridTemplateColumn.CellTemplate&gt;<br />                &lt;/DataGridTemplateColumn&gt;<br />                &lt;DataGridTemplateColumn Header=&quot;Out7&quot; CanUserResize=&quot;False&quot; Width=&quot;54&quot;&gt;<br />                    &lt;DataGridTemplateColumn.CellTemplate&gt;<br />                        &lt;DataTemplate&gt;<br />                            &lt;ComboBox ItemsSource=&quot;{Binding States}&quot; SelectedItem=&quot;{Binding SelectedUse&#91;6&#93;, UpdateSourceTrigger=PropertyChanged}&quot; DisplayMemberPath=&quot;Name&quot; Name=&quot;cb2&quot; IsSynchronizedWithCurrentItem=&quot;{x:Null}&quot; SelectedIndex=&quot;0&quot; /&gt;<br />                        &lt;/DataTemplate&gt;<br />                    &lt;/DataGridTemplateColumn.CellTemplate&gt;<br />                &lt;/DataGridTemplateColumn&gt;<br />                &lt;DataGridTemplateColumn Header=&quot;Out8&quot; CanUserResize=&quot;False&quot; Width=&quot;54&quot;&gt;<br />                    &lt;DataGridTemplateColumn.CellTemplate&gt;<br />                        &lt;DataTemplate&gt;<br />                            &lt;ComboBox ItemsSource=&quot;{Binding States}&quot; SelectedItem=&quot;{Binding SelectedUse&#91;7&#93;, UpdateSourceTrigger=PropertyChanged}&quot; DisplayMemberPath=&quot;Name&quot; Name=&quot;cb2&quot; IsSynchronizedWithCurrentItem=&quot;{x:Null}&quot; SelectedIndex=&quot;0&quot; /&gt;<br />                        &lt;/DataTemplate&gt;<br />                    &lt;/DataGridTemplateColumn.CellTemplate&gt;<br />                &lt;/DataGridTemplateColumn&gt;<br />                &lt;DataGridTemplateColumn Header=&quot;Out9&quot; CanUserResize=&quot;False&quot; Width=&quot;54&quot;&gt;<br />                    &lt;DataGridTemplateColumn.CellTemplate&gt;<br />                        &lt;DataTemplate&gt;<br />                            &lt;ComboBox ItemsSource=&quot;{Binding States}&quot; SelectedItem=&quot;{Binding SelectedUse&#91;8&#93;, UpdateSourceTrigger=PropertyChanged}&quot; DisplayMemberPath=&quot;Name&quot; Name=&quot;cb2&quot; IsSynchronizedWithCurrentItem=&quot;{x:Null}&quot; SelectedIndex=&quot;0&quot; /&gt;<br />                        &lt;/DataTemplate&gt;<br />                    &lt;/DataGridTemplateColumn.CellTemplate&gt;<br />                &lt;/DataGridTemplateColumn&gt;<br />                &lt;DataGridTemplateColumn Header=&quot;Out10&quot; CanUserResize=&quot;False&quot; Width=&quot;54&quot;&gt;<br />                    &lt;DataGridTemplateColumn.CellTemplate&gt;<br />                        &lt;DataTemplate&gt;<br />                            &lt;ComboBox ItemsSource=&quot;{Binding States}&quot; SelectedItem=&quot;{Binding SelectedUse&#91;9&#93;, UpdateSourceTrigger=PropertyChanged}&quot; DisplayMemberPath=&quot;Name&quot; Name=&quot;cb2&quot; IsSynchronizedWithCurrentItem=&quot;{x:Null}&quot; SelectedIndex=&quot;0&quot; /&gt;<br />                        &lt;/DataTemplate&gt;<br />                    &lt;/DataGridTemplateColumn.CellTemplate&gt;<br />                &lt;/DataGridTemplateColumn&gt;<br />            &lt;/DataGrid.Columns&gt;<br />        &lt;/DataGrid&gt;<br />        &lt;Button Content=&quot;Dodaj sygnał&quot; Height=&quot;23&quot; Margin=&quot;0,0,12,121&quot; Name=&quot;button1&quot; VerticalAlignment=&quot;Bottom&quot; Click=&quot;button1_Click_1&quot; HorizontalAlignment=&quot;Right&quot; Width=&quot;107&quot; /&gt;<br />        &lt;Button Content=&quot;Button&quot; Margin=&quot;0,0,12,92&quot; Name=&quot;button2&quot; Click=&quot;button2_Click&quot; HorizontalAlignment=&quot;Right&quot; Width=&quot;107&quot; Height=&quot;23&quot; VerticalAlignment=&quot;Bottom&quot; /&gt;<br />        &lt;TextBlock Height=&quot;74&quot; HorizontalAlignment=&quot;Right&quot; Margin=&quot;0,0,12,12&quot; Name=&quot;textBlock1&quot; Text=&quot;TextBlock&quot; VerticalAlignment=&quot;Bottom&quot; Width=&quot;107&quot; TextAlignment=&quot;Center&quot; /&gt;<br />    &lt;/Grid&gt;<br />&lt;/Window&gt;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4440">Federerer</a> — 17 sty 2015, o 18:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RafPe]]></name></author>
<updated>2015-01-12T12:16:21+01:00</updated>
<published>2015-01-12T12:16:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=113846#p113846</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=113846#p113846"/>
<title type="html"><![CDATA[Re: Tree view &quot;zagnieżdzony&quot;]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=113846#p113846"><![CDATA[
Wiesz ogolnie musisz sie zastanawic czy nie bedziesz chcial skorzystac z DataContext. Wtedy jak juz raz w odpowiedni sposob przygotujesz dane beda one w sweietny sposob gotowe do wykorzystania w calym WPfie <br /><br />zobacz sobie np ten artykul <!-- m --><a class="postlink" href="http://www.codeproject.com/Articles/321899/DataContext-in-WPF" >http://www.codeproject.com/Articles/321 ... ext-in-WPF</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4344">RafPe</a> — 12 sty 2015, o 12:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Federerer]]></name></author>
<updated>2015-01-11T23:08:44+01:00</updated>
<published>2015-01-11T23:08:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=113816#p113816</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=113816#p113816"/>
<title type="html"><![CDATA[Re: Tree view &quot;zagnieżdzony&quot;]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=113816#p113816"><![CDATA[
Coś w ten deseń właśnie. Nie wiem czy dobrze się do tego zabieram w sumie, bo nie mam za bardzo doświadczenia. Idea jest taka:<br />Mam sobie jakąś klasę (sterownik), w której jest kilka zmiennych, niektóre to zwykłe stringi i liczby typu int (nazwa i adres) a niektóre to obiekty w ilości ruchomej, ale ograniczonej od góry (np grupy wyjść w liczbie 1-8). One także mają kilka zmiennych wewnątrz. Chcę to jakoś ładnie wyświetlić w oknie programu i umożliwić edycję parametrów poszczególnych sterowników, grup wyjść każdego z nich itd. Cała konfiguracja ma być następnie zapisywana w pamięci urządzenia podłączanego do komputera. Logika i zabezpieczenia przed niewłaściwą konfiguracją ma być po stronie PC, żeby niepotrzebnie nie obciążać mikrokontrolera. Napisałem coś takiego:<br />[syntax=csharp]public class Semaphore<br />    {<br />        public UInt16 Leds;<br />        public string Name;<br />        public byte Adress = 127;<br /><br />        public Semaphore(string name, UInt16 leds)<br />        {<br />            this.Name = name;<br />            this.Leds = leds;<br />        }<br /><br />    }<br /><br />    public class SemaphoreDriver<br />    {<br />        public string Name;<br />        public List&lt;Semaphore&gt; semaphores = new List&lt;Semaphore&gt;();<br />        public byte Adress;<br /><br />        public SemaphoreDriver(string name, byte adress)<br />        {<br />            this.Name = name;<br />            this.Adress = adress;<br />        }<br /><br />    }[/syntax]<br /><br />To póki co wstępny szkic, nie wiem czy to dobre podejście, że użyłem list?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4440">Federerer</a> — 11 sty 2015, o 23:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RafPe]]></name></author>
<updated>2015-01-11T21:28:23+01:00</updated>
<published>2015-01-11T21:28:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=113808#p113808</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=113808#p113808"/>
<title type="html"><![CDATA[Re: Tree view &quot;zagnieżdzony&quot;]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=113808#p113808"><![CDATA[
Kiedys szukalem podobnego i bedziesz pewnie zainteresowany  czyms jak nested &quot;hierarchicaldatatemplate&quot;<br /><br /><!-- m --><a class="postlink" href="http://stackoverflow.com/questions/11938580/embed-datagrid-into-wpf-treeview-nodes" >http://stackoverflow.com/questions/1193 ... view-nodes</a><!-- m --><br /><br />daj znac czy to to<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4344">RafPe</a> — 11 sty 2015, o 21:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Federerer]]></name></author>
<updated>2015-01-11T21:14:28+01:00</updated>
<published>2015-01-11T21:14:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=113807#p113807</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=113807#p113807"/>
<title type="html"><![CDATA[Re: Tree view &quot;zagnieżdzony&quot;]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=113807#p113807"><![CDATA[
Desktop. Chcę mniej więcej to co na obrazku, czyli zwijalne drzewo z tabelkami. Główne węzły to będą poszczególne urządzenia podłączone do komputera a w tabelkach chcę ustawiać parametry każdego z nich, takie jak adres, konfiguracja wyjść itp <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4440">Federerer</a> — 11 sty 2015, o 21:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RafPe]]></name></author>
<updated>2015-01-11T21:10:40+01:00</updated>
<published>2015-01-11T21:10:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=113805#p113805</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=113805#p113805"/>
<title type="html"><![CDATA[Re: Tree view &quot;zagnieżdzony&quot;]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=113805#p113805"><![CDATA[
A moze napisz co chcesz osiagnac ? Web ? Desktop ? Wtedy latwiej jest cos doradzic <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4344">RafPe</a> — 11 sty 2015, o 21:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Federerer]]></name></author>
<updated>2015-01-11T20:58:24+01:00</updated>
<published>2015-01-11T20:58:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=113804#p113804</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=113804#p113804"/>
<title type="html"><![CDATA[Re: Tree view &quot;zagnieżdzony&quot;]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=113804#p113804"><![CDATA[
W google grafika wygląda ładnie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Teraz tylko muszę poszukać co to jest i jak tego używać <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4440">Federerer</a> — 11 sty 2015, o 20:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RafPe]]></name></author>
<updated>2015-01-11T20:54:40+01:00</updated>
<published>2015-01-11T20:54:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=113801#p113801</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=113801#p113801"/>
<title type="html"><![CDATA[Re: Tree view &quot;zagnieżdzony&quot;]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=113801#p113801"><![CDATA[
Hey,<br /><br />C# WPF ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4344">RafPe</a> — 11 sty 2015, o 20:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Federerer]]></name></author>
<updated>2015-01-11T20:43:14+01:00</updated>
<published>2015-01-11T20:43:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=113797#p113797</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=113797#p113797"/>
<title type="html"><![CDATA[Tree view &quot;zagnieżdzony&quot;]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10169&amp;p=113797#p113797"><![CDATA[
Zacząłem ostatnio trochę pisać w C# i utknąłem. Czy da się uzyskać taki efekt jak na obrazku przy użyciu wbudowanych/darmowych kontrolek?<br /><a href="http://forum.atnel.pl/_obrazki/o/4440/3c6aed5d9a78d64b50aebf7328f2639a.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/4440/3c6aed5d9a78d64b50aebf7328f2639a.png" alt="Obrazek" /></a><br /> Przetestowałem ObjectListView, ale nie da rady, udało mi się tylko z paskiem na górze. Jak nie to użyję chyba zwykłego treeview i dam tabelkę obok.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4440">Federerer</a> — 11 sty 2015, o 20:43</p><hr />
]]></content>
</entry>
</feed>