2016-07-06 3 views
0

Я делаю приложение с использованием Xamarin.forms.Как установить свойство класса пользовательского класса из XAML? (Xamarin.forms)

Я уже задал вопрос здесь. How to set child of class' property with using xaml? (Xamarin.forms) Но я не мог получить правильный ответ для этого, или для этого не может быть никакого решения.

Что я хочу сделать, это установить свойство представления моего класса из XAML ContentPage. У моего класса есть некоторый вид, похожий на изображение и другое.

Я искал и обнаружил, что есть «ControlTemplete». Но я не уверен, что это то, что я ищу.

И я также не думаю, что для всех свойств, которые я хочу установить, лучше всего использовать коды BindableProperty и OnPropertyChangedDelegate.

Есть ли еще лучшее решение?

Спасибо.

+0

Если вы уже знаете, что правильный ответ неверен, почему вы задаете вопрос? –

+0

@EdPlunkett Привет, я не думаю, что его ответ неправильный. И я действительно ценю его. Я хочу знать, есть ли другой способ или это правильный ответ, и другого пути нет. –

+0

И я также писал об этом по вопросу. И кажется, что это был правильный ответ. Спасибо за ваш комментарий –

ответ

0

Вы можете сопоставить XAML, находящийся внутри вашего элемента управления, с использованием атрибута ContentProperty.

[ContentProperty("MyContent")] 
public class MyControl : ContentView 
{ 
    public View MyContent { get; set; } 
} 

И в XAML Somthing как этот

<local:MyControl> 
    <Grid></Grid> 
</local:MyControl> 

это ограничивает вас только одна собственность, но должна работать с любыми типами.

+0

Да. Я знаю это решение. Но разве это не решение, которое использует, когда вы добавляете элементы управления? Я пытаюсь установить свойство дочерних элементов управления, которое уже добавлено. –

+0

@BrightLee, не совсем уверен, что вы имеете в виду здесь. Ваши элементы управления построены из XAML, вы можете установить аргументы конструктора или передать одно свойство содержимого во время построения. После его создания у вас есть привязка к изменению его свойств из модели. Можете ли вы рассказать о своем сценарии? – root

+0

hm ... В XAML (я думаю, это MyContentPage.xaml), который вы дали и присвоили классу «MyControl», есть вид с именем MyContent. Скажем, это изображение, а не вид. И, допустим, MyControl - это макет, такой как StackLayout. MyContent (Image) уже создан в MyControl.xaml. И MyControl назначается в MyContentPage.xaml. Теперь, как вы можете установить свойство «Источник» или «Аспект» MyContent в MyContentPage.xaml? –

Смежные вопросы