Smartstore.BTCPayServer/tools/Smartstore.WebApi.Client/Extensions/ComboBoxExtensions.cs
2022-09-29 16:10:00 +02:00

63 lines
1.7 KiB
C#

using System.Text;
namespace Smartstore.WebApi.Client
{
internal static class ComboBoxExtensions
{
private const char _delimiter = '¶';
public static void InsertRolled(this ComboBox combo, string str, int max)
{
if (!string.IsNullOrEmpty(str))
{
int i;
for (i = combo.Items.Count - 1; i >= 0; --i)
{
if (string.Compare(combo.Items[i].ToString(), str, true) == 0)
combo.Items.RemoveAt(i);
}
combo.Items.Insert(0, str);
for (i = combo.Items.Count - 1; i > max; --i)
{
combo.Items.RemoveAt(i);
}
combo.Text = str;
}
}
public static void FromString(this ComboBox.ObjectCollection coll, string values)
{
if (!string.IsNullOrWhiteSpace(values))
{
string[] items = values.Split(new[] { _delimiter }, StringSplitOptions.RemoveEmptyEntries);
coll.AddRange(items);
}
}
public static string IntoString(this ComboBox.ObjectCollection coll)
{
if (coll.Count <= 0)
return string.Empty;
var sb = new StringBuilder();
foreach (var item in coll)
{
if (sb.Length > 0)
sb.Append(_delimiter);
sb.Append(item);
}
return string.Join(_delimiter.ToString(), sb.ToString());
}
public static void RemoveCurrent(this ComboBox combo)
{
combo.Items.Remove(combo.Text);
combo.ResetText();
}
}
}