Как передать в параметр ссылку, с помощью xaml?

Собственно нужно именно то, что в вопросе.

Я умею передавать значимые параметры, это легко:
<ObjectDataProvider x:Key="userDCustom" ObjectType="{x:Type local:UserData}">
            <ObjectDataProvider.ConstructorParameters>
                <system:String>myName</system:String>
            </ObjectDataProvider.ConstructorParameters>
        </ObjectDataProvider>


Но все усложняется когда нужно передать ссылочный параметр.
Например есть класс UserData, принимающий в конструктор простую строку:
public class UserData
    {
        public string Name { get; set; }
        public UserData ( string name )
        {
            Name = name;
        }
    }


И есть обслуживающий его класс User, принимающий в параметр экземпляр предыдущего класса:
public class User
    {
        UserData _uData;

        public UserData UserData
        {
            get { return _uData; }
            private set { _uData = value; }
        }

        public User ( UserData data )
        {
            UserData = data;
        }
    }


Как мне передать в ObjectDataProvider.ConstructorParameters ссылку на экземпляр?
С помощью binding Sourse={...} как обычно не получается. Возможно ли это вообще сделать, или нужно искать обходные пути?
  • Вопрос задан
  • 2818 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Sumor
Может стоит отказаться от конструкторов с параметрами и задавать параметры свойствами.
Примерно так:
<ObjectDataProvider x:Key="userDCustom" ObjectType="{x:Type local:UserData}">
            <ObjectDataProvider.ConstructorParameters>
                <local:User>
                      <local:User.UserData>
                             <local.User Name="MyName" />
                      </local:User.UserData>
                </local:User>
            </ObjectDataProvider.ConstructorParameters>
</ObjectDataProvider>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы