gpt4 book ai didi

c# - 将 ObservableCollection 的所有元素绑定(bind)到 TextBlock

转载 作者:行者123 更新时间:2023-11-30 23:04:32 27 4
gpt4 key购买 nike

我正在尝试将 TextBlock 绑定(bind)到 ObservableCollection 中的项目。 TextBlock 值应该生成到集合中的元素。集合中元素的数量在 0 到 7 之间(如果有帮助的话)。 MyClass 实现了 INotifyPropertyChanged。应该直接是TextBlock,而不是ListBox。我该怎么做?谢谢!
更新:问题是我以前不知道集合中元素的数量。我知道在这种情况下最好使用 ListBox 或 ListView,但在 TextBlock 或 Label 中制作它很重要

例如:
1.ObservableCollection包含元素0、1、2。
TextBlock 应包含以下“值:0、1、2”
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();
}
}

最佳答案

使用连接这些字符串的转换器:

public class StringsCollectionConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null) return null;
return string.Join("\n", value as ObservableCollection<string>);
}

public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}

Xaml

<Window.Resources>
<local:StringsCollectionConverter x:Key="StringsCollectionConverter"/>
</Window.Resources>
<Grid>
<TextBlock Text="{Binding TextBlockCollection, Converter={StaticResource StringsCollectionConverter}}"></TextBlock>
</Grid>

关于c# - 将 ObservableCollection 的所有元素绑定(bind)到 TextBlock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49382695/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com