Я не уверен, что делать с управлением _namePrefixes для этого элемента управления.Я знаю, что могу сделать его нестатичным, но имеет смысл быть статичным, чтобы быть последовательным во всех применениях этого элемента управления с точки зрения контента для моего проекта.Кроме того, я выбрал ObservableCollection из-за следующего сценария:
У меня есть 2 клиентских компьютера, один для стандартного использования, другой для управления параметрами (admin), такими как список префиксов имен.Если клиент работает и администратор вносит изменения, клиент должен обновить себя и отразить эти изменения после того, как он уже был загружен.Да, и потому что это элемент WPF, и я хочу связать его с ListBox.Если ни один из них не заставит меня использовать ObserableCollection, ничего страшного ... Я буду использовать что-то вроде Списка, но я не думаю, что это изменит исходный вопрос.
using System;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
namespace MyProject
{
public class NameField : TextBox
{
private static ObservableCollection<NamePrefix> _namePrefixes;
private static ObservableCollection<NameSuffix> _nameSuffixes;
static NameField()
{
_namePrefixes = new ObservableCollection<NamePrefix>();
_nameSuffixes = new ObservableCollection<NameSuffix>();
}
public static void AddNamePrefix(Int32 id, String prefix)
{
//TODO: WHAT DO I DO HERE!?
}
}
/// <summary>
/// A Key/Value structure containing a Name Prefix ID and String value.
/// </summary>
public struct NamePrefix
{
#region Constructor
public NamePrefix(Int32 id, String prefix)
: this()
{
ID = id;
Prefix = prefix;
}
#endregion
#region Properties (ID, Prefix)
public Int32 ID { get; set; }
public String Prefix { get; set; }
#endregion
}
/// <summary>
/// A Key/Value structure containing a Name Suffix ID and String value.
/// </summary>
public struct NameSuffix
{
#region Constructor
public NameSuffix(Int32 id, String suffix)
: this()
{
ID = id;
Suffix = suffix;
}
#endregion
#region Properties (ID, Prefix)
public Int32 ID { get; set; }
public String Suffix { get; set; }
#endregion
}
}