组合框打开时从ObjectDataProvider获取数据

时间:2009-06-17 14:23:30

标签: wpf data-binding combobox objectdataprovider

如何在每次扩展组合框而不是一次时触发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>

1 个答案:

答案 0 :(得分:1)

在触发ObjectDataProvider时,您是否想要创建一个新的UserInterfaceHelper对象?

在这种情况下,将组合框的DropDownOpened事件连接到以下方法。

private void ComboBox_DropDownOpened(object sender, EventArgs e)
{
  ObjectDataProvider odp = Resources["possibleExpressionValues"] as ObjectDataProvider;
  odp.ObjectType = null;
  odp.ObjectInstance = new UserInterfaceHelper();
}