Привязка к конкретному элементу массива не обновляется - PullRequest
0 голосов
/ 28 июня 2018

Я разрабатываю приложение 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" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...