【问题标题】:LookUpEdit DisplayFormat FormatStringLookUpEdit DisplayFormat 格式字符串
【发布时间】:2012-02-12 12:36:29
【问题描述】:

DevExpress LookUpEdit DisplayFormat 有一个简单的问题。我想在lookUpEdit 中取得如下结果:
文档类型 (.doc)
文档类型(
.docx)

const string defaultExtensionsList = "doc;docx;xlsx;xls;pdf;txt";
//...
var column = new LookUpColumnInfo("Column", "Extensions")
{
    Visible = true,
    //FormatType = FormatType.Custom,
    //FormatString ="Document type (*.{0})",
    Alignment = HorzAlignment.Near
};
ExtensionsLookup.Properties.DisplayFormat.FormatType = FormatType.Custom;
ExtensionsLookup.Properties.DisplayFormat.FormatString = "Document type (*.{0})";
ExtensionsLookup.Properties.EditFormat.FormatType = FormatType.Custom;
ExtensionsLookup.Properties.EditFormat.FormatString = "Document type (*.{0})";
ExtensionsLookup.Properties.Columns.Add(column);

var bindingList = defaultExtensionsList.Split(';').ToList();
ExtensionsLookup.Properties.DataSource = bindingList;

【问题讨论】:

    标签: c# .net winforms devexpress lookup


    【解决方案1】:

    您可以使用以下技巧(RepositoryItemLookUpEdit.GetNotInListValue 事件):

    const string defaultExtensionsList = "doc;docx;xlsx;xls;pdf;txt";
    //...
    var columnID = new LookUpColumnInfo("Column", "IDs") { Visible = false };
    var columnToDisplay = new LookUpColumnInfo("Display", "Extensions");
    
    lookUpEdit.Properties.Columns.AddRange(new LookUpColumnInfo[] { columnID, columnToDisplay });
    lookUpEdit.Properties.ValueMember = "Column";
    lookUpEdit.Properties.DisplayMember = "Display";
    lookUpEdit.Properties.TextEditStyle = TextEditStyles.DisableTextEditor;
    lookUpEdit.Properties.GetNotInListValue += OnGetNotInListValue;
    
    var bindingList = defaultExtensionsList.Split(';').ToList();
    lookUpEdit.Properties.DataSource = bindingList;
    //...
    void OnGetNotInListValue(object sender, GetNotInListValueEventArgs e) {
        if(e.FieldName == "Display")
            e.Value = string.Format("Document type (*.{0})",
                ((IList<string>)lookUpEdit.Properties.DataSource)[e.RecordIndex]);
    }
    

    【讨论】:

    • 汉克斯。这几乎是我需要的。 var columnToDisplay = new LookUpColumnInfo("Display", "Extensions"); ExtensionsLookup.Properties.Columns.Add(columnToDisplay); ExtensionsLookup.Properties.GetNotInListValue += OnGetNotInListValue;为什么几乎? EditValue 没有相应地格式化:) 我会接受 :P
    【解决方案2】:

    如果我没记错的话,LookUpEdit 不支持这个功能。

    我将简单地构建一个具有值“文档类型 (.docx)”、“文档类型 (.xy)”的列表并将其绑定到控件。

    类似

    var types = defaultExtensionsList.Split(';').Select(s => "DocumentType (*." + s + ")").ToList();
    

    【讨论】:

    • 我知道,但我需要能够使用该数据进行操作(删除、添加唯一),所以我认为这可以通过 FormatString 来完成。这样我就不需要管理一个字典或两个列表。
    猜你喜欢
    • 1970-01-01
    • 2019-03-04
    • 2010-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-22
    • 1970-01-01
    相关资源
    最近更新 更多