Exemplo n.º 1
0
 /// <summary>
 /// Detaches listeners
 /// </summary>
 private void RemoveListeners(StringFormatContainer cont)
 {
     cont.CollectionChanged -= _valuesChangedHandler;
     _dpdValue.RemoveValueChanged(cont, _valueChangedHandler);
     _dpdValues.RemoveValueChanged(cont, _valueChangedHandler);
     _dpdStringFormat.RemoveValueChanged(cont, _valueChangedHandler);
 }
Exemplo n.º 2
0
 /// <summary>
 /// Activates bindings and adds change listeners
 /// </summary>
 private void AttachBindings(StringFormatContainer cont)
 {
     // recreate all bindings
     ActivateBinding(cont, StringFormatContainer.ValueProperty);
     ActivateBinding(cont, StringFormatContainer.ValuesProperty);
     ActivateBinding(cont, StringFormatContainer.StringFormatProperty);
     // recursive call
     foreach (var v in cont.Values)
     {
         AttachBindings(v);
     }
     AddListeners(cont);
 }
Exemplo n.º 3
0
 /// <summary>
 /// Adds listeners for changes in the Content
 /// </summary>
 private void AddListeners(StringFormatContainer cont)
 {
     // listen for changes in the bindings of the StringFormatContainer
     _dpdValue.AddValueChanged(cont, _valueChangedHandler);
     _dpdValues.AddValueChanged(cont, _valueChangedHandler);
     _dpdStringFormat.AddValueChanged(cont, _valueChangedHandler);
     // prevent memory leaks
     cont.Unloaded += (s, e) =>
     {
         _dpdValue.RemoveValueChanged(cont, _valueChangedHandler);
         _dpdValues.RemoveValueChanged(cont, _valueChangedHandler);
         _dpdStringFormat.RemoveValueChanged(cont, _valueChangedHandler);
     };
 }
Exemplo n.º 4
0
 /// <summary>
 /// Attaches listeners for changes in the Content tree
 /// </summary>
 private void AddListeners(StringFormatContainer cont)
 {
     // in case they have been added before
     RemoveListeners(cont);
     // listen for changes to values collection
     cont.CollectionChanged += _valuesChangedHandler;
     // listen for changes in the bindings of the StringFormatContainer
     _dpdValue.AddValueChanged(cont, _valueChangedHandler);
     _dpdValues.AddValueChanged(cont, _valueChangedHandler);
     _dpdStringFormat.AddValueChanged(cont, _valueChangedHandler);
     // prevent memory leaks
     cont.Unloaded += delegate { RemoveListeners(cont); };
     foreach (var c in cont.Values)
     {
         AddListeners(c);                                // recursive
     }
 }