Можно использовать lookaround:
^(?=.*[A-Za-z0-9])[A-Za-z0-9 _]*$
Это проверит вперед, что строка имеет букву или число, если это сделает то это проверит, что остальная часть символов отвечает Вашим требованиям. Это может, вероятно, быть улучшено, но это, кажется, работает с моими тестами.
ОБНОВЛЕНИЕ:
Добавление модификации предложенный Chris Lutz :
^(?=.*[^\W_])[\w ]*$/
Вы устанавливаете источник привязки для самого ItemsControl
. Следовательно, вам нужно будет разыменовать DataContext
из ItemsControl
:
Command="{Binding DataContext.GameSelectedCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ItemsControl}}}"
Как вы узнали об этом? Взгляните на окно вывода отладки при запуске приложения. Вы увидите сообщение в строке «Не удается разрешить свойство GameSelectedCommand для типа ItemsControl».