WPF将文本框绑定到字典条目
我尝试将wpf文本框绑定到放置在viewmodel中的词典。viewmodel用作视图的datacontext。 我找到了很多例子,听起来很简单,但对我来说不起作用 视图: TextBox x:Name=“txbTest”Grid.Row=“10”Grid.Column=“2”Text=“{Binding MyDict[First]}” 视图模型:WPF将文本框绑定到字典条目,wpf,binding,dictionary,Wpf,Binding,Dictionary,我尝试将wpf文本框绑定到放置在viewmodel中的词典。viewmodel用作视图的datacontext。 我找到了很多例子,听起来很简单,但对我来说不起作用 视图: TextBox x:Name=“txbTest”Grid.Row=“10”Grid.Column=“2”Text=“{Binding MyDict[First]}” 视图模型: public Dictionary<string, string> MyDict = new Dictionary<string,
public Dictionary<string, string> MyDict = new Dictionary<string, string>
{
{"First", "Test1"},
{"Second", "Test2"}
};
但什么都不起作用,文本框是空的。有什么想法吗?您的代码中有一个绑定错误,因为
MyDict
不是一个属性。您必须绑定到属性
,而不能绑定到字段
System.Windows.Data Error: 40 : BindingExpression path error: 'MyDict' property not found on 'object' ''MainWindow' (Name='')'. BindingExpression:Path=MyDict[First]; DataItem='MainWindow' (Name=''); target element is 'TextBox' (Name='textBox1'); target property is 'Text' (type 'String')
将MyDict字段
更改为属性
,如下所示
private Dictionary<string, string> _MyDict;
public Dictionary<string, string> MyDict
{
get { return _MyDict; }
set { _MyDict = value; }
}
以下两种变体将不起作用,因为MyDict[“key”]返回字符串
,并且字符串
没有文本
或值
属性。其他两个变体应该可以工作
Text="{Binding MyDict[First].Text}"
Text="{Binding MyDict[First].Value}"
以下绑定将起作用
Text="{Binding MyDict[First]}"
Text="{Binding Path=MyDict[First]}"
不能绑定到字段。将
MyDict
定义为属性。我已经在我的答案中分享了示例代码。很显然,这是很容易的。谢谢,它很有效。我被一些失败的例子所引导。显然,这是很容易的。谢谢,它很有效。我在一些例子的指导下失败了。你会如何通过编程来完成这项工作?假设我动态创建文本框和字典。
Text="{Binding MyDict[First].Text}"
Text="{Binding MyDict[First].Value}"
Text="{Binding MyDict[First]}"
Text="{Binding Path=MyDict[First]}"