private void CreateValueReverserSurfaceItem(Dictionary <string, FixtureReference> fixtureReferences, Grid page, XElement xeSurfaceItem, out ValueReverserSurfaceItem reverserSurfaceItem) { List <DmxBinding> reverseTargets = new List <DmxBinding>(); var xaName = xeSurfaceItem.Attribute("name"); string name = ""; if (xaName != null) { name = xaName.Value; } var xeTargets = xeSurfaceItem.Element("Targets"); foreach (var xeTarget in xeSurfaceItem.Elements("Target")) { try { // <Target ref-id="lyre9_pan" ref-fixture="lyre2" inputNum="1"/> string refId = xeTarget.Attribute("ref-id").Value; int hackBindingIndex = int.Parse(xeTarget.Attribute("hackBindingIndex").Value); var uc = page.FindName(refId) as VerticalSlider; // TODO : aad management of other control ex:Joystick ! if (uc == null) { continue; } var ssi = uc.DataContext as SliderSurfaceItem; // on recupere le SliderSurfaceItem attaché au slider if (ssi == null) { continue; } if (ssi.DmxBindings.Count < hackBindingIndex + 1) { continue; } var binding = ssi.DmxBindings[hackBindingIndex]; reverseTargets.Add(binding); } catch (Exception ex) { throw new Exception($"Invalid '{xeTarget.ToString()}' element in '{xeSurfaceItem.ToString()}'"); } } reverserSurfaceItem = new ValueReverserSurfaceItem(name, reverseTargets); var xaImg = xeSurfaceItem.Attribute("img"); if (xaImg != null) { reverserSurfaceItem.ImageResourceName = xaImg.Value; } }
void OnOffButton_DataContextChanged(FrameworkElement sender, DataContextChangedEventArgs args) { this.brSurfaceItem = args.NewValue as ValueReverserSurfaceItem; if (this.brSurfaceItem != null && !string.IsNullOrEmpty(this.brSurfaceItem.ImageResourceName)) { imgPushArea.Background = Application.Current.Resources[this.brSurfaceItem.ImageResourceName] as Brush; imgPushArea.Visibility = Visibility.Visible; } }