WPF. Доступ к коллекции привязок во время выполнения - PullRequest
1 голос
/ 19 марта 2019

У меня есть окно wpf с некоторыми элементами управления, привязанными к различным коллекциям.

<controls:CustomTextBox ItemsSource="{Binding Countries}" />
<controls:CustomTextBox ItemsSource="{Binding Localities}" />

"ItemsSource" - это пользовательский DependencyProperty для связи с коллекцией. Я хочу получить коллекцию во время выполнения в PreviewLostKeyboardFocus для проверки, если текст существует в коллекции.

PreviewLostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
    CustomTextBox textBox = (CustomTextBox)sender;
    var bindingExpression = textBox.GetBindingExpression(textBox.ItemsSourceDependencyProperty);
    ...
}

Я получил обязательное выражение, но я не знаю, как искать текст в Коллекции. Спасибо.

1 Ответ

0 голосов
/ 19 марта 2019

Почему бы просто не получить доступ к оболочке CLR для свойства зависимостей?

CustomTextBox textBox = (CustomTextBox)sender;
var collection = textBox.ItemsSource;

Чтобы вы могли «искать текст» в коллекции, вам, возможно, придется привести его к соответствующему типу, такому как, например, IEnumerable<string> или любой другой тип Countries или Localities;

var collection = textBox.ItemsSource as IEnumerable<string>;
if (collection != null)
{
    //...
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...