Преобразование XAML ObjectDataProvider в C#
-
21-08-2019 - |
Вопрос
Я хотел бы создать свой ObjectDataProvider в моем коде C #, а не в моем XAML.
Мне было интересно, как изменить этот XAML на эквивалентный C #.XAML был сгенерирован Microsoft Expression Blend 2, поэтому d:пространство имен можно безопасно игнорировать.
<ObjectDataProvider x:Key="FooSourceDS" ObjectType="{x:Type myNS:FooSource}" d:IsDataSource="True"/>
myNS - это пространство имен, ссылающееся на мой объект CLR.
Я зацикливаюсь на указании ObjectType в C#:
ObjectDataProvider FooSourceDS = new ObjectDataProvider();
FooSourceDS.ObjectType = myNamespace.FooSource;
Интеллект правильно идентифицирует FooSource как "тип", который является тем, что ищет ObjectType, не так ли?
Решение
Это то, что вам нужно?
FooSourceDS.ObjectType = typeof(myNamespace.FooSource)
Другие советы
Ответ на ваш вопрос - это то, что написал @Bryan, Но перепроверьте, хотите ли вы ObjectDataProvider на code lever или нет.ObjectDataProvider - это просто XAML-способ создания экземпляра определенного класса для привязки.Но если вы хотите писать код на C #, то вам на самом деле не нужен ObjectDataProvider.Просто создайте экземпляр FooSource и используйте его.