/// <summary> /// Constructs the attribute for x:Name element and target mapping. /// </summary> /// <param name="aliasName">Alias x:Name string. If it contains '_', it will be split on XAML x:Name element targets as well.</param> /// <param name="commaSeparatedTargets">XAML x:Name element targets separated by comma.</param> public ViewXNameSourceTargetMappingAttribute(string aliasName, string commaSeparatedTargets = "") { var aliasname = aliasName.TrimStart().TrimEnd(); if (!string.IsNullOrEmpty(aliasname)) { _alias = aliasname; if (!string.IsNullOrEmpty(_alias)) { var targets = commaSeparatedTargets.Split(','); foreach (var item in targets) { var name = item.TrimStart().TrimEnd(); if (!string.IsNullOrEmpty(name)) { if (BindHelper.ValidateElementName(name)) { _targets.Add(name); } } } } } #if DEBUG if (String.IsNullOrEmpty(_alias) || _targets.Count == 0) { throw new InvalidOperationException("aliasName or commaSeparatedTargets was not defined."); } #endif }
/// <summary> /// Constructs the attribute for View model mapping. /// </summary> /// <param name="commaSeparatedAliases">The comma separated aliases of the candidate type name.</param> public ViewModelClassAliasAttribute(string commaSeparatedAliases) { var targets = commaSeparatedAliases.Split(','); foreach (var item in targets) { var name = item.TrimStart().TrimEnd(); if (!string.IsNullOrEmpty(name)) { if (BindHelper.ValidateElementName(name)) { _aliases.Add(name); } } } #if DEBUG if (_aliases.Count == 0) { throw new InvalidOperationException("Names was not defined."); } #endif }