Obtener datos de ObjectDataProvider cuando se abre el cuadro combinado
-
06-07-2019 - |
Pregunta
¿Cómo hago para que un ObjectDataProvider se active cada vez que se expande un cuadro combinado en lugar de solo una vez?
<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>
Solución
Con ObjectDataProvider se activa, ¿quiere decir que desea crear un nuevo objeto UserInterfaceHelper?
En ese caso, conecte el evento DropDownOpened del cuadro combinado al siguiente método.
private void ComboBox_DropDownOpened(object sender, EventArgs e)
{
ObjectDataProvider odp = Resources["possibleExpressionValues"] as ObjectDataProvider;
odp.ObjectType = null;
odp.ObjectInstance = new UserInterfaceHelper();
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow