silverlight - 是否可以通过名称而不是通过列索引访问Silverlight DataGrid列?

标签 silverlight xaml

有谁知道是否可以通过后面的代码使用x:name(在xaml中定义)来访问DataGrid列?

我知道我可以使用以下代码:

myDataGridList.Columns[0].Header = "Some Data";

..但如果可能的话,我宁愿使用这样的方法:
myDataGridList.Columns["ColumnName"].Header = "Some Data";

提前致谢。

最佳答案

您可以使用一些Linq或foreach循环扩展ObservableCollection,以对列进行线性搜索。

public static class MyExtensions
{
    public static DataGridColumn GetByName(this ObservableCollection<DataGridColumn> col, string name)
    {
        return col.SingleOrDefault(p =>
            (string)p.GetValue(FrameworkElement.NameProperty) == name
        );
    }
}

然后,您可以调用此方法而不是Columns属性:
myGrid.Columns.GetByName("theName");

关于silverlight - 是否可以通过名称而不是通过列索引访问Silverlight DataGrid列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/528022/

相关文章:

.net - Silverlight 限制/限制列表

c# - Silverlight 应用程序的 WCF 服务返回 "NotFound"

silverlight - RIA 服务对比WCF 和共享代码

.net - margin 中的属性顺序

silverlight - 从绝对uri下载文件以流式传输到SaveFileDialog

silverlight - 有没有人使用过silverlight流sdk?

wpf - 在 View 模型中包含 WPF 细节的优缺点

c# - 如何在 XAML 中将 FormatString 作为 ConverterParameter 传递

c# - 在 WPF 的 ContentControl 中托管 ViewModel

c# - 如何使用 InvokeCommandAction 调用我的方法并传入参数?