В xaml окне у меня есть TextBlock, который должен выводить данные с помощью Binding. Но он будто не видит, то что должен выводить. Подскажите, пожалуйста, как исправить?
<TextBlock Grid.Row="0" Grid.Column="0" Text="Подписка:" FontWeight="Bold" FontSize="12" Foreground="White"/>
<TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding ItemModel.Name}" FontWeight="Bold" FontSize="12" Foreground="White"/>
<TextBlock Grid.Row="1" Grid.Column="0" Text="Цена:" FontWeight="Bold" FontSize="12" Foreground="White"/>
<TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding ItemModel.Price, StringFormat={}{0} руб}" FontWeight="Bold" FontSize="12" Foreground="White"/>
<TextBlock Grid.Row="2" Grid.Column="0" Text="Срок подписки:" FontWeight="Bold" FontSize="12" Foreground="White"/>
<TextBlock Grid.Row="2" Grid.Column="1" Text="{Binding ItemModel.Time, StringFormat={}{0} Месяц}" FontWeight="Bold" FontSize="12" Foreground="White"/>
<TextBlock Grid.Row="3" Grid.Column="0" Text="Тема:" FontWeight="Bold" FontSize="12" Foreground="White"/>
<TextBlock Grid.Row="3" Grid.Column="1" Text="{Binding ItemModel.Topic}" FontWeight="Bold" FontSize="12" Foreground="White"/>
<TextBlock Grid.Row="4" Grid.Column="0" Text="Автор:" FontWeight="Bold" FontSize="12" Foreground="White"/>
<TextBlock Grid.Row="4" Grid.Column="1" Text="{Binding ItemModel.Author}" FontWeight="Bold" FontSize="12" Foreground="White"/>
ItemModel берёт всё из базы данных.
public int id { get; set; }
private string name, topic, author;
private int price, time;
public string Name
{
get { return name; }
set { name = value; }
}
public int Price
{
get { return price; }
set { price = value; }
}
public int Time
{
get { return time; }
set { time = value; }
}
public string Topic
{
get { return topic; }
set { topic = value; }
}
public string Author
{
get { return author; }
set { author = value; }
}
public ItemModel() { }
public ItemModel(string name, int price, int time, string topic, string author)
{
this.name = name;
this.price = price;
this.time = time;
this.topic = topic;
this.author = author;
}
DataContextнастроен? Почему у вас модель исполняет роль вью-модели? Если данные меняются после создания экземпляра модели, то нужно реализоватьINotifyPropertyChanged, чтобы интерфейс увидел эти изменения. Если данные не меняются, то зачем реализованы сеттеры в свойствах? – aepot Jun 09 '21 at 10:54DataContext? Есть ли в том классе публичное свойство с типомItemModelи аналогичным названием (аляpublic ItemModel ItemModel { get;})? – EvgeniyZ Jun 09 '21 at 11:30DataContext="{Binding Source={x:Static local:Samples.SamplePost}}"А в Samples хранится первоначальная информацияpublic static ItemModel SamplePost => new ItemModel() { Name = "Газета Правда", Price = 1000, Time = 1, Topic = "Новости", Author = "Россия" };– Dr. Crow Jun 09 '21 at 11:35static? Статику не место в проекте! Ну и также посмотрите внимательно на свой код, повторю вопрос "У вас есть вSamplePostпубличное свойство с типомItemModelи аналогичным именем?" Я этого не вижу, вижу, чтоSamplePostи естьItemModel, тогда почему привязка у вас идет такItemModel.Name, а не такName? – EvgeniyZ Jun 09 '21 at 11:39но не работало- это не объяснение. Добавляйте в вопрос все необходимое, все ваши попытки, показывайте как задаетеDataContext, показывайте как инициализируете все типы, показывайте привязки.что использовать вместо static- ничего? Статик либо есть, либо его нету, а быть его у вас не должно! – EvgeniyZ Jun 09 '21 at 11:43