Я разрабатываю приложение WPF на C # и .NET Framework 4.7 с использованием шаблона MVVM.
У меня есть это свойство в моем классе ViewModel:
public List<byte> BestIndividual
{
get { return _bestIndividual; }
set
{
_bestIndividual = value;
RaisePropertyChangedEvent(nameof(BestIndividual));
}
}
RaisePropertyChangedEvent
:
public abstract class ObservableObject : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChangedEvent(string propertyName)
{
var handler = PropertyChanged;
if (handler != null)
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
А метка с привязкой в представлении:
<Label x:Name="c00" Content="{Binding BestIndividual[0]}" Margin="0" BorderThickness="2,2,0,0" BorderBrush="Black" />
Я обновляю свойство в обработчике событий:
private void Algorithm_BestIndividualFound(object sender, EventArgs e)
{
BestIndividualEventArgs best = (BestIndividualEventArgs)e;
BestIndividual = best.BestIndividual;
}
Я получаю значение только на Label
, и оно никогда не меняется.
Почему не обновляется содержимое ярлыка?
UPDATE:
Я изменил List<byte>
на byte
, и он все еще не обновляется. Новый код здесь:
private byte _bestIn;
public byte BestIn
{
get { return _bestIn; }
set
{
_bestIn = value;
RaisePropertyChangedEvent(nameof(BestIn));
}
}
Событие, в котором я обновляю значение BestIn
:
private void Algorithm_BestIndividualFound(object sender, EventArgs e)
{
BestIndividualEventArgs best = (BestIndividualEventArgs)e;
BestIn = best.BestIndividual[0];
}
И XAML:
<Label x:Name="c00" Content="{Binding BestIn}" Margin="0" BorderThickness="2,2,0,0" BorderBrush="Black" />