Получать данные из ObjectDataProvider при открытии поля со списком

StackOverflow https://stackoverflow.com/questions/1007357

Вопрос

Как мне добиться того, чтобы ObjectDataProvider запускался каждый раз, когда раскрывается поле со списком, а не только один раз?

<UserControl.Resources>
    <ObjectDataProvider x:Key="possibleExpressionValues"
                MethodName="GetWatchVariableNames" 
                ObjectType="{x:Type mu:UserInterfaceHelper}" IsInitialLoadEnabled="False">
    </ObjectDataProvider>
</UserControl.Resources>

<Grid>
    <ComboBox IsEditable="True" Text="{Binding ID}" ItemsSource="{Binding Source={StaticResource possibleExpressionValues}}" VerticalAlignment="Top" />
</Grid>

Это было полезно?

Решение

С запуском ObjectDataProvider вы имеете в виду, что хотите создать новый объект UserInterfaceHelper?

В этом случае подключите событие DropDownOpened выпадающего списка к следующему методу.

private void ComboBox_DropDownOpened(object sender, EventArgs e)
{
  ObjectDataProvider odp = Resources["possibleExpressionValues"] as ObjectDataProvider;
  odp.ObjectType = null;
  odp.ObjectInstance = new UserInterfaceHelper();
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top