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>

¿Fue útil?

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
scroll top