WPF-将TextBlock.Text数据绑定到整数
我知道这是一个非常简单的问题 我有一个Textblock,它的文本属性我想被数据绑定到codebehind中的整数。。现在我正在做这件事WPF-将TextBlock.Text数据绑定到整数,wpf,data-binding,integer,textblock,Wpf,Data Binding,Integer,Textblock,我知道这是一个非常简单的问题 我有一个Textblock,它的文本属性我想被数据绑定到codebehind中的整数。。现在我正在做这件事 <TextBlock Name="TextBlockCompeltedSongsNumber" Text="{Binding}"></TextBlock> 其中CompletedTracks是公共int 我错过了什么 可能您设置DataContext太晚了。在渲染之后 直接绑定到属性并引发PropertyChanged事件不是更好吗
<TextBlock Name="TextBlockCompeltedSongsNumber" Text="{Binding}"></TextBlock>
其中CompletedTracks是公共int
我错过了什么 可能您设置DataContext太晚了。在渲染之后 直接绑定到属性并引发PropertyChanged事件不是更好吗
<TextBlock Text="{Binding CompletedTracks}"></TextBlock>
并将TextBlock父对象的DataContext设置为CompletedTracks的所有者。可能您设置DataContext太晚了。在渲染之后 直接绑定到属性并引发PropertyChanged事件不是更好吗
<TextBlock Text="{Binding CompletedTracks}"></TextBlock>
并将TextBlock父对象的DataContext设置为CompletedTracks的所有者。最后,我创建了一个实现InotifyPertyChange的类
//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最后,我只是创建了一个实现InotifyPertyChange的类
//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应该可以,你有什么问题吗?文本块不显示任何内容。。。它总是空的…@Ryan:你收到了什么错误消息?运行应用程序时,查看输出窗口中的“绑定错误”。这将帮助您/我们找出问题所在。输出窗口中没有绑定错误。。或任何其他errors@Ryan,在该行放置一个断点,然后查看CompletedTracks的值。另外,我假设没有输入错误。这应该很好,你有什么问题吗?文本块不显示任何内容。。。它总是空的…@Ryan:你收到了什么错误消息?运行应用程序时,查看输出窗口中的“绑定错误”。这将帮助您/我们找出问题所在。输出窗口中没有绑定错误。。或任何其他errors@Ryan,在该行放置一个断点,然后查看CompletedTracks的值。此外,我假设没有输入错误。CompletedTracks所有者是所有这些都发生在内部的窗口。。。如何设置数据上下文?this.textblockCompelledSongsnumber.DataContext=this??在Windows的ctor中:this.DataContext=this;CompletedTracks所有者是一个窗口,所有这些都发生在里面。。。如何设置数据上下文?this.textblockCompelledSongsnumber.DataContext=this??在Windows的ctor中:this.DataContext=this;不幸的是,你需要这样做。WPF怎么知道您的财产发生了变化?如果您希望在更改属性时更新UI,则需要告诉WPF一些信息。INotifyPropertyChanged是通常的方法。如果C#能让属性自动完成这项工作那就太好了,但它们不能,所以你最终在WPF中写了很多类似的东西。不幸的是,你需要这样做。WPF怎么知道您的财产发生了变化?如果您希望在更改属性时更新UI,则需要告诉WPF一些信息。INotifyPropertyChanged是通常的方法。如果C#能让属性自动完成这项工作那就太好了,但它们不能,所以你最终会在WPF中写很多类似的东西。