我正在尝试将TextBlock绑定到ObservableCollection中的项。TextBlock值应生成到集合中的元素。集合中的元素计数介于0和7之间(如果有帮助)。MyClass实现了INotifyPropertyChanged。它应该直接是TextBlock,而不是ListBox。我该怎么做?谢谢!
更新:问题是我以前不知道集合中元素的数量。我知道在这种情况下最好使用ListBox或ListView,但在TextBlock或Label中使用它也很重要
例如:
- ObservableCollection包含元素0、1、2。
TextBlock应包含以下“值:0、1、2” - ObservableCollection包含元素0、1。
TextBlock应包含以下“值:0、1”
<TextBlock>
<Run Text="Values: "/>
<Run Text="{Binding Values}" />
</TextBlock>
ObservableCollection<int> values = new ObservableCollection<int>();
public ObservableCollection<int> Values
{
get => values;
set
{
values = value;
OnPropertyChanged();
}
}
3条答案
按热度按时间u7up0aaq1#
使用连接这些字符串的转换器:
Xaml
tct7dpnv2#
必须使用转换器绑定到集合。
问题是在集合改变时更新值(这里我的意思不是将值设置为新集合,而是向/从集合中添加/删除项)。
要实现在添加/删除时的更新,必须使用
MultiBinding
和ObservableCollection.Count的绑定之一,因此如果计数被更改,绑定属性将被更新。nkoocmlb3#
创建一个额外的字符串属性,该属性将在每次集合项更改时更改:
然后绑定到该属性: