Я думаю, что проблема только в том, что связующее не может понять дженерики. Вы должны быть в состоянии обойти это, наследуя от ObservableCollection<string>
, чтобы сделать неуниверсальный класс. Вы можете использовать что-то вроде этого:
class StringCollection : ObservableCollection<string> { }
Поскольку вы используете это свойство в качестве цели привязки, вы должны объявить его как DependencyProperty:
class ObjectSelectorView
{
public StringCollection ObjectNames
{
get { return (StringCollection)GetValue(ObjectNamesProperty); }
set { SetValue(ObjectNamesProperty, value); }
}
// Using a DependencyProperty as the backing store for ObjectNames.
// This enables animation, styling, binding, etc...
public static readonly DependencyProperty ObjectNamesProperty =
DependencyProperty.Register("ObjectNames", typeof(StringCollection),
typeof(ObjectSelectorView), null);
....
}