2009-06-17 62 views
0

如何獲取每次擴展組合框而不是一次的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

隨着ObjectDataProvider的被觸發,你的意思是你想有一個新的UserInterfaceHelper對象創建?

在這種情況下,將組合框的DropDownOpened事件掛接到以下方法。

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

這很接近,UserInterfaceHelper是靜態的,所以我只是根據您建議的事件重新加載下拉列表。有沒有辦法用XAML來做到這一點? – 2009-06-17 19:02:55