将字符串列表绑定到DataGridTemplateColumn TextBox
如果我尝试这样做,我会得到“ System.Windows.Markup.XamlParseException ”。
我的XAML代码如下所示:
代码背后的代码如下所示:
using System.Collections.ObjectModel; using System.Windows; namespace WpfApplication1 { /// /// Interaction logic for MainWindow.xaml /// public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); DataContext = this; } public ObservableCollection ErrorLog { get; set; } = new ObservableCollection() { "A", "B" }; } }
来自exception的其他信息是: 双向绑定需要Path或XPath。 TextBox Text属性默认具有TwoWay绑定模式。 TwoWay绑定不接受像"{Binding}"
这样的空绑定。 请尝试以下方法。
我认为,改变你的集合类型并使用一些自定义类型而不是字符串将是一个更好的解决方案:XAML:
代码隐藏:
public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); DataContext = new MainViewModel(); } } public class MainViewModel { public ObservableCollection ErrorLog { get; set; } = new ObservableCollection { new Error("A"), new Error("B"), }; } public class Error { public Error(string message) { Message = message; } public string Message { get; set; } }
还可以考虑实现INotifyPropertyChanged接口,以便能够在需要时从视图模型更改消息。