【问题标题】:Set the selected item of an XAM Datagrid programatically according to its name根据名称以编程方式设置 XAMDatagrid 的选定项
【发布时间】:2011-11-20 04:42:06
【问题描述】:

类似的东西。

private void SearchResult(string nameOfBean)
{
    foreach (Record VARIABLE in mbeanDataGrid.Records)
    {
        if (VARIABLE.ToString().Contains(nameOfBean))
        {
            ((VARIABLE as DataRecord).DataItem as Record).IsSelected = true;
        }
    }
}

但是我知道这种语法是错误的,我正在寻找一些建议!几乎可以通过代码选择项目(就像您单击它一样)。根据它的名字。

【问题讨论】:

    标签: c# wpf datagrid infragistics selecteditem


    【解决方案1】:

    您可以使用以下代码选择记录(如果您要选择多个记录)

    private void ShowSearchResult(string searchStr)
    {
        var recordsToSelect = new List<Record>();
        foreach (Record rec in xamGrid.Records) {
          var yourData = rec is DataRecord ? ((DataRecord)rec).DataItem as YourDataClass : null;
          if (yourData != null && yourData.MatchWithSearchStr(searchStr)) {
            recordsToSelect.Add(rec);
          }
        }
        xamGrid.SelectedItems.Records.Clear();
        // you need linq -> .ToArray()
        xamGrid.SelectedItems.Records.AddRange(recordsToSelect.ToArray(), false, true);
    }
    

    或者如果您只想激活并选择一条记录,请执行此操作

    private void ShowSearchResult(string searchStr)
    {
        foreach (Record rec in xamGrid.Records) {
          var yourData = rec is DataRecord ? ((DataRecord)rec).DataItem as YourDataClass : null;
          if (yourData != null && yourData.MatchWithSearchStr(searchStr)) {
            xamGrid.ActiveRecord = rec;
            // don't know if you really need this 
            xamGrid.ActiveRecord.IsSelected = true;
            break;
          }
        }
    }
    

    希望对你有帮助

    【讨论】:

    • 无需将“IsSelected”设置为 true 即可突出显示 ActiveRecord。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多