简体   繁体   English

绑定到嵌套属性

[英]Binding to nested property

I have a class as o model: The class Flight and flightDetails are two classes defined in the proxy of the webservice: 我有一个作为o模型的类:Flight和flightDetails类是在Web服务的代理中定义的两个类:

public class FlightView
    {
        public FlightView()
        {
            FlightDetailsElement = new FlightDetails();
            Flight = new Flight();
            VisibleBoarding = false;
            VisibleCheckIn = false;
            Visibleluggage = false;
        }
        public Flight Flight;
        public FlightDetails FlightDetailsElement;
        private bool _visibleCheckIn;
        public bool VisibleCheckIn
        {
            get { return _visibleCheckIn; }
            set { _visibleCheckIn = value; }
        }
        private bool _visibleBoarding;
        public bool VisibleBoarding
        {
            get { return _visibleBoarding; }
            set { _visibleBoarding = value; }
        }
        private bool _visibleluggage;
        public bool Visibleluggage
        {
            get { return _visibleluggage; }
            set { _visibleluggage = value; }
        }
        private DateTime _refreshDate;
        public DateTime RefreshDate
        {
            get { return _refreshDate; }
            set { _refreshDate = value; }
        }
        private string _date;
        public string Date
        {
            get { return _date; }
            set { _date = value; }
        }
        private string _time;
        public string Time
        {
            get { return _time; }
            set { _time = value; }
        }

    }

in the codebehind i set the dataxontext of the grid: 在后面的代码中,我设置了网格的dataxontext:

 SelectedFlightView.FlightDetailsElement = e.Result;
        if(!(SelectedFlightView.FlightDetailsElement.IsArrival) && !string.IsNullOrEmpty(SelectedFlightView.FlightDetailsElement.BoardingGate))
        SelectedFlightView.VisibleBoarding= true;
         if(!(SelectedFlightView.FlightDetailsElement.IsArrival) && !string.IsNullOrEmpty(SelectedFlightView.FlightDetailsElement.CheckInArea))
        SelectedFlightView.VisibleCheckIn= true;
         if ((SelectedFlightView.FlightDetailsElement.IsArrival) && !string.IsNullOrEmpty(SelectedFlightView.FlightDetailsElement.LuggageDelivery))
             SelectedFlightView.Visibleluggage = true;
         SelectedFlightView.RefreshDate = DateTime.Now;
         SelectedFlightView.Date = SelectedFlightView.RefreshDate.ToLongDateString();
         SelectedFlightView.Time = SelectedFlightView.RefreshDate.ToLongTimeString();
         ContentPanelDetails.DataContext = SelectedFlightView;

My problem is when i bind in the xaml: 我的问题是当我绑定在xaml中时:

 <TextBlock  Text="{Binding FlightDetailsElement.DepartureTime}"/> 

I haven't the result, but when I bind 我没有结果,但是当我绑定

<TextBlock Text="{Binding Time}"/> i have the result. <TextBlock Text="{Binding Time}"/>我得到了结果。

Any ideas please?? 有什么想法吗?

Regards 问候

For the binding to work, you need to use a public property. 为了使绑定生效,您需要使用公共属性。 Currently, your FlightDetailsElement is a public field. 当前,您的FlightDetailsElement是公共字段。 To fix your problem, just declare it as a property: 要解决您的问题,只需将其声明为属性:

public FlightDetails FlightDetailsElement { get; set; }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM