【发布时间】:2015-08-18 16:39:32
【问题描述】:
我需要将List<Key> 绑定到TextBox。我编写了一个转换器,可以将List<Key> 转换为字符串(ConvertBack 方法只是抛出一个异常——它没有被使用)。问题是,当我尝试使用此转换器时,它向我显示一个错误:“IValueConverter”的 TypeConverter 不支持从字符串转换。看来问题是因为它正在尝试转换string 从 TextBox 到 List<Key>, 但我不想这样做(用户不会“写”到这个 TextBox)。我已经考虑过使用 TextBox 以外的其他东西 - 也许 TextBlock 我认为可以解决问题,但出于其他一些原因我想使用 TextBox。
我要绑定的属性:
public partial class Settings : Window
{
public List<Key> hotkeyCapture_keys { get; set; }
...
转换器:
class ListKeyToStringConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return string.Join(" + ", (List<Key>)value);
}
...
和文本框:
<TextBox ... Text="{Binding hotkeyCapture_keys, Converter=ListKeyToStringConverter}" />
当尝试构建它时,应用程序立即关闭并显示“发生 XamlParseException”。
谁能告诉我如何解决这个问题?
谢谢
【问题讨论】:
标签: c# wpf data-binding