Есть вью модель wpf страницы. В ней указано свойство :
string totalST;
public string totalStproperty
{
get { return totalST; }
set { totalST = value; }
}
В конструкторе класса свойству в первый раз передается значение :
totalST = "Всего студентов " + allS.Rows.Count.ToString();
И в разметке осуществлена привязка к свойству :
<Label x:Name="allStudents" Content="{Binding totalStproperty, Mode=TwoWay}"/>
При первой загрузке страницы будет показано общее число студентов, равное строкам в соответствующей таблице. Но затем мы вызываем комманду которая показывает в таблице только часть студентов - соответственно должно поменяться и число в label:
public RelayCommand<ListBoxItem> SelectFilter
{
get
{
return new RelayCommand<ListBoxItem>(DataGridRefresh);
}
}
private void DataGridRefresh(ListBoxItem selected)
{
totalST= "Всего студентов 0";
}
Ошибок не показывает, компилируется, но выполняется неверно. totalST принимает значение "Всего студентов 0" но в Label так и висит старое значение, словно никакого Binding и нет. В чем ошибка?
В методе доступа set свойства totalStproperty должен происходить вызов метода RaisePropertyChanged(() => ваше свойство) для того что бы интерфейс получил уведомление, что значение свойства изменилось.
public string totalStproperty
{
get { return totalST; }
set
{
totalST = value;
RaisePropertyChanged(() => totalStproperty);
}
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей