我可能有一个简单的问题,但我想问一下如何将文本框 Text 属性绑定到组合框 SelectedItem 属性的可能性。我通过组合框 SelectedItemChanged 事件来完成并设置如下文本:
if(cmbMeasuring.SelectedItem != null)
txtMethod.Text = ((ListBoxItem)cmbMeasuring.SelectedItem).Value;
我有类 ListBoxItem,它包含 2 个字符串“名称”和“值”。然后我为组合框创建了 BindingList:
private BindingList<ListBoxItem> lst;
然后在构造函数中设置组合框数据源:
cmbMeasuring.DataSource = lst;
cmbMeasuring.DisplayMember = "Name";
这很好用,但我不知道它是否是最好的方法。但是当我更改文本框内容时会出现问题。我通过文本框离开事件来做到这一点:
private void txtMethod_Leave(object sender, EventArgs e)
{
if (cmbMeasuring.SelectedItem != null)
((ListBoxItem)cmbMeasuring.SelectedItem).Value = txtMethod.Text;
}
如果文本框失去焦点,我会分配项目值。但是我还有一个菜单条来保存输入,当我直接单击它时,不会发生此事件,因此不会保存最后一个输入。我知道这可以通过文本框 TextChanged 事件来完成,但它会消耗大量时间。
您有更好的解决方案还是可以?我没有使用 WPF。
谢谢。