2017-01-04 3 views
0

У меня есть пользовательский набор данных для моего ListView. Бизнес-объект (например, тип «Person») имеет много свойств и Я хочу избежать слишком большого количества привязок для каждой собственности, также потому, что некоторые из них будут трудно настроить.Xamarin Forms: доступ Вид данных привязки ListView?

Так что я предпочел бы установить свойство представления значение (ЭГ «PersonCell») вручную/непосредственно, сразу после View были созданы, и это BindingContext/DataContext был установлен на экземпляр „Человек“ ,

Проблема: я не знаю, как получить доступ к этим View экземплярам.

Возможно ли вообще получить доступ к View, созданному для элемента данных? И где я это сделаю? (В OnBindingContextChanged я, кажется, не быть в состоянии получить доступ к представлению, связанного с пунктом при условии данных/BindingContext)

ответ

0

Если вы распаковываете DataTemplate к контролю, так что у вас есть:

partial class PersonCell : Grid 
{ 
    public PersonCell() 
    { 
     InitialiseComponent(); 
    } 

    Protected Override OnBindingContextChanged() 
    { 
     //set up bindings here 
    } 
} 

с вашей точки зрения, определенной в Xaml

, а затем в вашем ListView использовать его так:

<ListView> 
    <ListView.ItemTemplate> 
    <DataTemplate> 
     <custom:PersonCell/> 
    </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 

Где - пространство имен Xaml, которое вы определяете (где находится PersonCell)

+0

И, наконец, я решил проблему, сохранив экземпляр PersonCell в объекте Person в OnBindingContextChanged, поэтому я могу получить к нему доступ позже в любой точке моей страницы. Плохой стиль, но он работает. – fritz

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