我正在使用以下代码:
private Dictionary<string, string> GetNumber { get; set; }
public ReportsLetterTra()
{
GetNumber = new Dictionary<string, string>
{
{"1", "First"},
{"2", "Second"}
};
InitializeComponent();
}
xaml代码:
<ComboBox
DisplayMemberPath="value"
SelectedValuePath="key"
ItemsSource="{Binding ElementName=reportslettra,Path=GetNumber}"
SelectedIndex="0" Name="cmbFromNumber" />
为什么不将GetNumber绑定到cmbFromNumber?!
更新:
我在文件后面的完整代码:
using System.Collections.Generic;
using System.Windows;
namespace WpfApplication20
{
/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1 : Window
{
public Dictionary<string, string> GetNumber { get; set; }
public Window1()
{
GetNumber = new Dictionary<string, string>
{
{"1", "First"},
{"2", "Second"}
};
InitializeComponent();
}
}
}
我完整的xaml代码:
<Window x:Class="WpfApplication20.Window1" Name="eportslettra"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid Height="26">
<ComboBox DisplayMemberPath="Value" SelectedValuePath="Key"
ItemsSource="{Binding ElementName=reportslettra,Path=GetNumber}"
SelectedIndex="0" Name="cmbFromNumber" />
</Grid>
</Window>
我哪里错了? 为什么不将GetNumber绑定到cmbFromNumber?!
答案 0 :(得分:1)
您的媒体资源已标记为private
,请将其设为public
。另外,请更正ComboBox
至Value
和Key
上的大写字母。第三,你的绑定表达式看起来无效,仔细检查一下。最后,看起来您的属性是视图后面代码文件的一部分。您可以考虑MVVM设计模式。
<强>更新强>
您的Window
拥有Name
'eportslettra',但您的绑定表达式使用ElementName
'reportslettra'。纠正其中一个。