]> O.S.I.I.S - jp/crow.git/commitdiff
Minimal requirements to have selected Item from ListBox
authorjpbruyere <jp.bruyere@hotmail.com>
Thu, 10 Sep 2015 21:49:46 +0000 (23:49 +0200)
committerjpbruyere <jp.bruyere@hotmail.com>
Thu, 10 Sep 2015 21:49:47 +0000 (23:49 +0200)
src/GraphicObjects/GraphicObject.cs
src/GraphicObjects/ListBox.cs
src/Interface.cs

index d74442d7f3d7532c7e3357641f237bbaa5a3af59..03d43da0e61b819a4ede2ca3362484aa77e4fcee 100644 (file)
@@ -298,6 +298,7 @@ namespace go
                        get { return _minimumSize; }\r
                        set { _minimumSize = value; }\r
                }\r
+               [XmlIgnore]public object DataSource;\r
                #endregion\r
 \r
                /// <summary>\r
index 117dd626ec3e733d1e932cb4ec97b968d4311d49..ee068ac59843a1c766a3a09bba9dda7ff429e2bc 100644 (file)
@@ -43,7 +43,7 @@ namespace go
                }
                #endregion
 
-               ICollection data;
+               IList data;
                int _selectedIndex;
                string _itemTemplate;
 
@@ -56,9 +56,11 @@ namespace go
                        get { return _selectedIndex; }
                        set { _selectedIndex = value; }
                }
-
+               public object SelectedItem{
+                       get { return data[_selectedIndex]; }
+               }
                [XmlAttributeAttribute][DefaultValue(null)]
-               public ICollection Data {
+               public IList Data {
                        get {
                                return data;
                        }
@@ -70,16 +72,16 @@ namespace go
                                        return;
                                foreach (var item in data) {
                                        GraphicObject g = Interface.Load (ItemTemplate, item);
-                                       //GraphicObject g = Interface.Load ("#go.Templates.Listbox.goml", item);
-//                                     g.Tag = item;
-//                                     g.MouseClick += (object sender, OpenTK.Input.MouseButtonEventArgs e) => {
-//                                             
-//                                     };
+                                       g.MouseClick += itemClick;
                                        _list.addChild(g);
 
                                }
                        }
                }
+               void itemClick(object sender, OpenTK.Input.MouseButtonEventArgs e){
+                       NotifyValueChanged ("SelectedItem", (sender as GraphicObject).DataSource);
+                       //Debug.WriteLine ((sender as GraphicObject).DataSource);
+               }
        }
 }
 
index 1812217b28a5f55a470f20243185178953fad2b8..69e8d9d0bee8b4559145b23a6a233e766589225a 100644 (file)
@@ -123,6 +123,7 @@ namespace go
                        XmlSerializer xs = new XmlSerializer(type);            
 
                        result = (GraphicObject)xs.Deserialize(stream);
+                       result.DataSource = hostClass;
 
                        if (hostClass == null) {
                                GOMLResolutionStack.Pop ();