привязка списка сложных классов к ListView на странице xaml

#xaml #xamarin #xamarin.forms #uwp

Вопрос:

У меня проблема с привязкой сложных объектов списка к источнику элементов listview на странице xaml.
Код написан не на английском языке, поэтому я попытаюсь смоделировать свою проблему!
Это список, который используется в качестве источника элементов

 public ObservableCollection<Order> orderList { get; set; } = new ObservableCollection<Order>();
 

Мой класс Order имеет значение класса OrderState, а мой класс OrderState имеет экземпляр класса State.
Класс состояния имеет свойство с именем Name, и к этому свойству я пытаюсь получить доступ, чтобы привязать его к метке на странице xaml.

 public class Order
{
    public virtual ICollection<OrderState> OrderState { get; set; }
   
}
 
 public class OrderState
{
    public virtual ICollection<State> State { get; set; }
   
}
 
 public partial class State
{
    public string Name{ get; set; }
}
 

Поэтому, если я хочу получить доступ к свойству Name из класса Order, мне нужно перейти в состояние заказа-> Состояние->> имя

 <ListView ItemsSource="{Binding orderList}"  >
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <StackLayout  Padding="10" Margin="5" Orientation="Horizontal" >
                           
                //dont know how to access Name property here          
                //I tried with OrderState.State.Name and State.Name but i only get empty text
                            <Label Text="{Binding Name}" 
                            d:Text="Item descripton"
                            LineBreakMode="NoWrap"
                            Style="{DynamicResource ListItemDetailTextStyle}"
                            FontSize="13" HorizontalTextAlignment="Center" HorizontalOptions="CenterAndExpand" />
                            
                            
                        </StackLayout>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>



        </ListView>
 

В списке заказов есть все данные, необходимые для отображения свойства Name, просто не знаю, какой путь использовать, чтобы добраться до него!
Любая помощь будет признательна!!
Спасибо за уделенное время!
Основной вопрос решен , вопрос об обновлении

 var query = _context.Set<Database.Order>().AsQueryable();
 query = query.Include("OrderState").Include("OrderState.State");
 

как я мог написать этот запрос, чтобы я мог заказать OrderState по desc и занять верхнюю 1 строку???
Еще раз спасибо, что уделили мне время!!!!!

Комментарии:

1. OrderState и State являются обеими коллекциями объектов, поэтому вы должны указать, на какой элемент коллекции вы ссылаетесь, т. е. OrderState[0].State[0].Name

2. Спасибо, что ответили @Jason ! я решил эту проблему с помощью OrderState[0].Состояние. Имя… У меня есть еще один вопрос, я обновлю основной вопрос!!!!

3. Попробуйте linq для сортировки.

4. Какое свойство вы используете для сортировки? Является ли это Name свойством State класса?

5. если у вас есть еще один вопрос, пожалуйста, напишите другое сообщение