الحصول على البيانات من 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