コード例 #1
0
        void StopMonitoringChildElement(DependencyObject childElement)
        {
            // Remove the MatrixGridChildMonitor from the map
            // and clear its bindings, which effectively kills
            // the monitor and releases it from memory.

            if (_childToMonitorMap.ContainsKey(childElement))
            {
                MatrixGridChildMonitor monitor = _childToMonitorMap[childElement];
                BindingOperations.ClearAllBindings(monitor);
                _childToMonitorMap.Remove(childElement);
            }
        }
コード例 #2
0
        void StartMonitoringChildElement(DependencyObject childElement)
        {
            // Create a MatrixGridChildMonitor in order to detect
            // changes made to the Grid.Row and Grid.Column attached
            // properties on the new child element.

            MatrixGridChildMonitor monitor = new MatrixGridChildMonitor();

            BindingOperations.SetBinding(
                monitor,
                MatrixGridChildMonitor.GridRowProperty,
                this.CreateMonitorBinding(childElement, Grid.RowProperty));

            BindingOperations.SetBinding(
                monitor,
                MatrixGridChildMonitor.GridColumnProperty,
                this.CreateMonitorBinding(childElement, Grid.ColumnProperty));

            _childToMonitorMap.Add(childElement, monitor);
        }