有没有人知道是否有一种简单的方法将文本块绑定到List.到目前为止我所做的是创建一个listview并将其绑定到List,然后我在listview中有一个使用单个文本块的模板.
我真正想要做的就是将List绑定到一个文本块并让它显示所有行.
在Winforms中有一个"Lines"属性,我可以将List放入,但我没有在WPF文本块或TextBox上看到它.
有任何想法吗?
我想念一些简单的东西吗?
这是代码
和WorkItem类
public class WorkItem { public string Name { get; set; } public string Description { get; set; } public string CurrentLog { get; private set; } public string CurrentStatus { get; private set; } public WorkItemStatus Status { get; set; } public ThreadSafeObservableCollectionLogs{get;private set;}
我正在使用Prism来创建控件并将其放入WindowRegion中
WorkItemLogView newView = container.Resolve(); newView.DataContext = workItem; regionManager.Regions["ShellWindowRegion"].Add(newView);
谢谢
将List转换为单个字符串,其中"\ r \n"作为其间的分隔符.并将其绑定到TextBlock.确保TextBlock的高度不受限制,以便它可以根据行数增长.我将它实现为XAML绑定的值转换器,它将字符串列表转换为单个字符串,并在其间添加新行
ListToStringConverter看起来像这样:
[ValueConversion(typeof(List), typeof(string))] public class ListToStringConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { if (targetType != typeof(string)) throw new InvalidOperationException("The target must be a String"); return String.Join(", ", ((List )value).ToArray()); } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { throw new NotImplementedException(); } }