- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个 combobox
,我想在这里显示一个字符串作为 DisplayMember
并且有一个Dictionary<string,string>
作为ValueMember
.我有一个包含带有字符串和字典的对象的列表,这个列表我用作 DataSource
对于 ComboBox
.
List<myObject> myList = new List<myObject>{
new myObject {myDisplayMember = "TEXT", myValueMember = new Dictionary<string,string> {{"A","ABC"},{"D","DEF"}}}
};
myComboBox.DataSource = new BindingSource(myList, null);
myComboBox.DisplayMember = "myDisplayMember";
myComboBox.ValueMember = "myValueMember";
DisplayMember
按预期工作,“TEXT”显示在 ComboBox
中,但是当我得到 ValueMember
我只得到一串“myValueMember
”,而不是我想得到的字典。我正在尝试的方法是否可行,或者是否有更好的选择?
最佳答案
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load( object sender, EventArgs e )
{
var list = new List<ItemX>() {
new ItemX { Name = "a", Dictionary = new Dictionary<string, string> { { "1", "2" },{"qqq","wwww"} } },
new ItemX { Name = "b", Dictionary = new Dictionary<string, string> { { "3", "4" } } },
new ItemX { Name = "c", Dictionary = new Dictionary<string, string> { { "5", "6" } } },
};
comboBox1.DataSource = list;
comboBox1.DisplayMember = "Name";
comboBox1.ValueMember = "Dictionary";
}
private void button1_Click( object sender, EventArgs e )
{
if ( comboBox1.SelectedValue != null )
{
var d = comboBox1.SelectedValue as Dictionary<string, string>;
if ( d != null )
{
var builder = new StringBuilder();
foreach ( KeyValuePair<string, string> p in d )
{
builder.AppendFormat( "key:{0} value:{1}\n", p.Key, p.Value );
}
MessageBox.Show( builder.ToString() );
}
}
}
}
public class ItemX
{
public string Name { get; set; }
public Dictionary<string, string> Dictionary { get; set; }
}
}
关于c# - 在 Combobox 中使用字典作为 ValueMember,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28991519/
我阅读了很多关于 Winforms ComboBox ValueMember 属性主题的有用帖子,但没有一篇能回答我的具体问题。首先,我将描述一个工作正常的简单示例,然后我将描述我想如何改变它,并询问
我的 ComboBox 控件显示 publishername 和 authorlastname 并存储 publisherid 和 authorid。 当我运行我的代码时,它会显示 publisher
我有一个使用 Windows 窗体绑定(bind)到复选框列表的 linq 查询 var webresourcesFromCRM = from w in orgSvcContext.CreateQue
我有一个 combobox ,我想在这里显示一个字符串作为 DisplayMember并且有一个Dictionary作为ValueMember .我有一个包含带有字符串和字典的对象的列表,这个列表我用
我的选中列表框有问题。 public void GetFolder() { var dict = new Dictionary(); foreach (Fo
如何设置这些值?我有一个数据表,其中包含我想在组合框中设置的所有数据,但我找不到如何设置它。 我试过了 ComboBox1.DataSource = dataTable; ComboBox1.Valu
当我设置 DataSource在控件上并想使用 .ToString()作为DisplayMember , 我需要设置 DisplayMember最后一个或 ValueMember将覆盖它。 MSDN
我正在尝试使用 C# 从 ListBox 中获取所有选定的项目 ValueMember。 例如: 我有一个这样的列表: ID | Name and Lastname -----------------
我有一个小问题。 DataGridViewComboBoxColumn显示来自 ValueMember 的值而不是来自 DisplayMember .网格工作正常,当我从该列中选择某些内容时,我看到
我有一个具有以下结构的组合框。此外,我从另一个来源获取了一个 fld_id,我需要根据该 ID 在 ComboBox 中选择相应的项目。我该怎么做? comboBoxCustomers.DataSou
我有两个具有相同 DisplayMember 和不同 ValueMember 的项目,我想以编程方式选择这两个项目之一,我该怎么做? 项目: 123 -> Peter Pan 234 -> John
我有一个组合框,显示我国不同的市(这些市属于特定省)。由于存在具有相同名称的市政当局,我将“MunicipalityName”(我数据库中“MUNICIPALITY”表中的表列)绑定(bind)到组合
我希望在 ComboBox 上有一个 DisplayMember 和一个 ValueMember,它们只有 4 个值,并且它们始终相同。 是否可以不使用DataTable作为DataSource并且不
我有一个带有 Id、Name 列的组合框。我已将这些值添加到带有数据表的组合框中: DataTable.Rows.Add(1, "Name1"); DataTable.
我正在向 WinForms 应用程序添加一个组合框,我遇到了 DisplayMember 和 ValueMember 属性。它们的功能正是我的应用程序所需要的,但我不确定我是否喜欢它们的工作方式。 c
这是在 Windows 窗体、.NET 4.0 上。 public class Person { public int Id { get; set; } public string N
我有一个可编辑的 ComboBox,它对 Text 属性进行了验证,以确保手动输入的信息有效。 编辑:我想要做的就是使用选择的 ValueMember 而不是 DisplayMember 填充 .Te
我在尝试获取我设置的 ValueMember 值时遇到了一些问题。我正在尝试使用组合框来选择 Windows 窗体报告。我可以得到名称,但不能得到 RptValue。这是我的代码: p
我正在尝试创建包含键值对的列表框。我从类中获得的那些数据是从 getter 提供的。 类: public class myClass { private int key; privat
我正在尝试创建包含键值对的列表框。我从类中获得的那些数据是从 getter 提供的。 类: public class myClass { private int key; privat
我是一名优秀的程序员,十分优秀!