WPF - DataBind TextBlock.Text to Integer - PullRequest
       24

WPF - DataBind TextBlock.Text to Integer

1 голос
/ 30 ноября 2010

Я знаю, что это действительно простой вопрос ..

У меня есть Textblock, свойство text которого я хочу связать с целым числом, которое у меня есть в коде позади ... сейчас я делаю это

<TextBlock Name="TextBlockCompeltedSongsNumber" Text="{Binding}"></TextBlock>

Тогда в c # ..

            this.TextBlockCompeltedSongsNumber.DataContext = CompeltedTracks;

Где CompletedTracks - публичный int

Чего мне не хватает?

Ответы [ 2 ]

1 голос
/ 30 ноября 2010

В конце я просто создал класс, который реализовал INotifyPorpertyChange

    //Global Declaration
information info = new information();

позже ...

            this.TextBlockCompeltedSongsNumber.DataContext = info;

и информационный класс

public class information : INotifyPropertyChanged
{
    private int failedTracks = 0;
    public int FailedTracks { get { return failedTracks; } set { failedTracks = value; OnPropertyChanged("FailedTracks"); } }
    private int compeltedTracks = 0;
    public int CompeltedTracks { get { return compeltedTracks; } set { compeltedTracks = value; OnPropertyChanged("CompeltedTracks"); } }

    public event PropertyChangedEventHandler PropertyChanged;
    private void OnPropertyChanged(string name)
    {
        PropertyChangedEventHandler handler = PropertyChanged;
        if (handler != null)
        {
            handler(this, new PropertyChangedEventArgs(name));
        }
    }
}

и, наконец, в xaml

                    <TextBlock Name="TextBlockCompletedSongs" Margin="5,0,5,0">Completed Songs:</TextBlock>
                <TextBlock Name="TextBlockCompeltedSongsNumber" Text="{Binding Path=CompeltedTracks}"></TextBlock>
                <TextBlock Name="TextBlockFailedSongs" Margin="5,0,5,0">Failed Songs:</TextBlock>
                <TextBlock Name="TextBlockFailedSongsNumber" Text="{Binding Path=FailedTracks}"></TextBlock>

Кажется, много работы для чего-то, что должно быть простым ... но я не мог заставить его работать другим способом ... Я не знаю, что я делал неправильно: O

0 голосов
/ 30 ноября 2010

Возможно, вы установили DataContext слишком поздно.После того, как это оказано.

Не лучше ли связать непосредственно со свойством и вызвать событие PropertyChanged?

<TextBlock Text="{Binding CompletedTracks}"></TextBlock>

и установить DataContext родительского объекта TextBlock владельцем CompletedTracks.

...