如何将DataRepeater中的TextBox与Enum值绑定? [英] How to bind TextBox in DataRepeater with Enum values?

查看:116
本文介绍了如何将DataRepeater中的TextBox与Enum值绑定?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何将DataRepeater中的TextBox与Enum值绑定?例如,如果数据库中的性别列中的一个可以具有值M和F,但是当绑定到文本框时,它应该输入文本男性和女性,所以我们如何实现这一点。

How to bind TextBox in DataRepeater with Enum values? For example if one of column "Gender" in Database can have value "M" and "F" but when binded to Textbox its should enter text as "Male" and "Female", so how we can achieve this.

推荐答案

您可以利用文本框数据绑定上的Format和Parse事件在Text和Enum之间进行转换:

You can take advantage of the Format and Parse events on the databinding to the textbox to translate between Text and Enum:
Binding b = new Binding("Text", this.bs, "Gender", true, DataSourceUpdateMode.OnPropertyChanged);
b.Parse += new ConvertEventHandler(TextToGender);
b.Format += new ConvertEventHandler(GenderToText);
this.textBox1.DataBindings.Add(b);



接下来,实现两种方法执行翻译:


Next, implement the two methods to perform the translation:

void GenderToText(object sender, ConvertEventArgs e)
{
    Gender gender = (Gender)Enum.Parse(typeof(Gender), e.Value as string);
   
    switch (gender)
    {
        case Gender.Male:
            e.Value = "Male";
            break;
        case Gender.Female:
            e.Value = "Female";
            break;
        default:
            e.Value = "Unknown";
            break;
    }
}

void TextToGender(object sender, ConvertEventArgs e)
{
    switch (e.Value as string)
    {
        case "Male":
            e.Value = Gender.Male;
            break;
        case "Female":
            e.Value = Gender.Female;
            break;
        default:
            e.Value = Gender.Unknown;
            break;
    }
}



但是,当有人在TextBox中键入Gremlin或其他内容时,要注意做什么,你有吗?枚举值对应于空值或未知值,然后在两个默认情况下都使用它。


However, take good care about what to do when someone types "Gremlin" or something in the TextBox, do you have a Enum value that corresponds to an empty or unknown value, then use that in both default cases.


这篇关于如何将DataRepeater中的TextBox与Enum值绑定?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆