Связывание сводит меня с ума - PullRequest
0 голосов
/ 23 февраля 2012

Edit:

XAML:

<TextBlock Text="{Binding Path=CurrentShows}"  Grid.Row="1"/>

производит следующий вывод:

 SilverlightHelloWorld.Deserialize.schedule

XAML:

<TextBlock Text="{Binding Path=CurrentShows.Today}"  Grid.Row="1"/>

ни

<TextBlock Text="{Binding Path=CurrentShows.Today.Date}"  Grid.Row="1"/>

выдает любую ошибку или вывод, находясь в режиме отладки.

Anysuggestions


OldStatement:

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

Это мой кодекс:

MainPage.xaml.cs

schedule currentshows;
    public schedule CurrentShows
    {
        protected set
        {
            if (currentshows != value)
            {
                currentshows = value;
                OnPropertyChanged("CurrentShows");
            }
        }
        get
        {
            return currentshows;
        }
    }

schedule.cs

[XmlRoot]
    public class schedule : INotifyPropertyChanged 
    {
        public event PropertyChangedEventHandler PropertyChanged;


        DayCollection today;
        [XmlElement("DAY")]
        public DayCollection Today
        {
            set
            {
                if (today != value)
                {
                    today = value;
                    OnPropertyChanged("Today");

                }
            }
            get
            {
                return today;
            }
        }

        private void OnPropertyChanged(string p)
        {
            if (PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(p));
        }

    }

DayCollection.cs

    public class DayCollection : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;

        ObservableCollection<TimeCollection> timecol;
        [XmlElement("time")]
        public ObservableCollection<TimeCollection> TimeCol
        {
            set
            {
                if (timecol != value)
                {
                    timecol = value;
                    OnPropertyChanged("TimeCol");

                }
            }
            get
            {
                return timecol;
            }
        }

        string date;
        [XmlAttribute(AttributeName = "attr")]
        public string Date
        {
            set 
            {
                if (date != value)
                {
                    date = value;
                    OnPropertyChanged("Date");

                }
            }
            get
            {
                return date;
            }
        }

        private void OnPropertyChanged(string p)
        {
            if (PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(p));
        }

    }

Я пытаюсь получить свойство Date в свойстве Xaml для Show-Up. Но у меня просто нет решения.

Я был бы очень признателен за любую помощь, спасибо заранее!

1 Ответ

0 голосов
/ 25 февраля 2012

Я скопировал ваш код в проект, и он работает, если вы используете эту строку вместо того, чтобы установить привязку TextBlock

<TextBlock Text="{Binding Today.Date}"  Grid.Row="1"/>

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

currentshows = new schedule();
currentshows.Today = new DayCollection();
currentshows.Today.Date = "hallo";
LayoutRoot.DataContext = currentshows;

, где LayoutRoot является родителем TextBlock, то есть

<Grid x:Name="LayoutRoot">
 <TextBlock Text="{Binding Today.Date}"/> 
</Grid>
...