private void UpdateSubsets() { var classes = this.SourceActions.Where(Filter).SelectMany(Classifier).Distinct().OrderBy(c => c); this.Subsets.Clear(); foreach (var cls in classes) { var actions = new ObservableCollection <ActionView>( SourceActions.Where(Filter) .Where(a => Classifier(a).Contains(cls)) .OrderBy(a => a.Title)); var subset = new ActionSubset(cls) { Actions = actions }; this.Subsets.Add(subset); } }
/// <summary> Constructs a new ViewActionEvent object. </summary> /// <param name="action"> The type of action this event will perform. </param> public ViewActionEvent(SourceActions action) : base() { Action = action; }
public override void Parse(IPacketParser parser) { Sender = new NodeInfo { SerialNumber = parser.ParseAddress64(), NetworkAddress = parser.ParseAddress16() }; Option = (PacketOption) parser.Read("Option"); Remote = new NodeInfo { NetworkAddress = parser.ParseAddress16(), SerialNumber = parser.ParseAddress64() }; byte ch; // NI is terminated with 0 while ((ch = parser.Read("Node Identifier")) != 0) { if (ch > 32 && ch < 126) Remote.NodeIdentifier += (char) ch; } ParentAddress = parser.ParseAddress16(); NodeType = (NodeType) parser.Read("Device Type"); SourceAction = (SourceActions) parser.Read("Source Action"); ProfileId = UshortUtils.ToUshort(parser.Read("Profile MSB"), parser.Read("Profile LSB")); MfgId = UshortUtils.ToUshort(parser.Read("MFG MSB"), parser.Read("MFG LSB")); }