- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
什么绑定(bind)用于将 DataGridTemplateColumn 的单元格模板中定义的元素绑定(bind)到该单元格的 DataGridRow 的绑定(bind)数据项?
例如,假设 DataGrid 项是具有 Name 属性的对象。下面的代码需要什么绑定(bind)才能将 TextBlock 文本绑定(bind)到父行表示的数据项的“名称”属性?
(是的,在示例中我可以只使用 DataGridTextColumn,但我只是为了举例而简化。)
<DataGrid ItemsSource="{Binding Items}">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Name">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding ???}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
最佳答案
您不需要任何特殊类型的绑定(bind) - TextBlock 从行(设置为绑定(bind)项)继承数据上下文。
所以你可以这样做:
<TextBlock Text="{Binding Name}" />
要查看数据上下文实际上是由 TextBlock 继承的,您可以在控件层次结构中设置更接近 TextBlock 的不同数据上下文。 TextBlock 现在将改用该数据上下文。
在此示例中,StackPanel 的名称将显示在 TextBlock 中,而不是 DataGrid 上绑定(bind)行对象上的名称:
<DataTemplate>
<StackPanel x:Name="panel1" DataContext="{Binding RelativeSource={RelativeSource Self}}">
<!-- Binds to Name on the Stackpanel -->
<TextBlock Text="{Binding Name}" />
<!-- Binds to Name on object bound to DataGridRow -->
<TextBlock Text="{Binding DataContext.Name,
RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGridRow}}" />
</StackPanel>
</DataTemplate>
关于c# - 如何从 xaml 中该行中的模板化单元格绑定(bind)到 DataGridRow 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13201286/
跟踪DataGridRow.Item之后和 DataGridRow.IsNewItem属性,我发现:每个添加的项目(当 Source 为 ObservableCollection 时添加到 DataG
我在弄乱 DataGridRow 的 Background 时发现了一些奇怪的东西。 DataGridRow 的背景颜色显示为白色,如果打印它,您将得到以下输出: System.Console.Wri
我有一个 DataGrid并且我希望选定行和焦点行同步,即如果焦点行发生变化,则选定行发生变化,如果选定行发生变化,则它成为焦点行。 给定具有以下 XAML 的 WPF 窗口,如何同步焦点行和选定行?
我一直在尝试弄清楚如何将这种自定义行为放入数据网格中,而无需在网上搜索解决方案时仔细查看。 给定以下数据网格(为简洁起见删除了一些 xaml):
有没有办法使用 XAML 根据其中一个单元格的内容动态设置行的背景? 谢谢, 菲尔 最佳答案 您可以为行定义样式并使用 DataTrigger 更改颜色。像这样的东西:
我已经在这几天了,找不到解决方案,请帮忙。 我有一个 WPF 应用程序我有一个 DataGridCombobox 它里面有东西(参数列表)。我还可以将徒手键入的文本添加到组合框中,例如“测试”,如下图
我有一个具有交替行背景颜色的数据绑定(bind) DataGrid。我想根据单元格包含的数据对单元格进行不同的着色。我已经尝试过这个线程建议的解决方案 http://wpf.codeplex.com/
我目前正在设计我的应用程序 (WPF),我正在尝试更改 DatagridRow 的 IsSelected 的设计。 XAML:
我对 WPF 和 XAML 很陌生,所以我可能会以错误的方式解决这个问题。 我有一个使用 Entity Framework 绑定(bind)到数据源的 DataGrid。 当我向 DataGrid 添
我目前已将此方法设置为检测对 DataGrid 中每一行的双击: private void Row_DoubleClick(object sender, RoutedEventArgs e)
我正在制作一个 WPF 程序,该程序能够使用 for 循环将 DataGrid 中的行逐一着色为红色,我遇到了一些奇怪的事情.如果 DataGrid 有超过 40 行来自数据库表的数据,它不会为所有行
当鼠标离开一行时,我有一个鼠标离开事件 因此在处理程序中,我尝试获取与该行绑定(bind)的带下划线的项目 private void Row_Mou
我的数据网格上有一个样式来禁用基于属性绑定(bind)的 DataGridRow。这使得该行无法选择,这就是我想要的。但是,我仍然可以使用至少 2 种其他方式选择禁用的行。第一个是如果我在禁用行周围的
当鼠标离开一行时,我有一个鼠标离开事件 因此在处理程序中,我尝试获取与该行绑定(bind)的带下划线的项目 private void Row_Mou
我有 DataGrid 的 DataGridRow,如何从中获取各个列的值?请参阅下面的代码。 var itemsSource = MESearchDatagrid.ItemsSource as IE
我正在创建一个 DataGrid,其中的行具有 AlternatingRowBackground 属性。但是,行中的数据必须修改,这需要一些时间。 我正在尝试使行的背景颜色在初始化时显示为浅灰色。这是
我在将对象传递给 WPF 中的转换器时遇到了问题。 我的 DataGrid 看起来像:
我希望将我的 DataGrid 中行的选定样式从默认的深蓝色和白色文本更改为实际上取决于行中现有的前景颜色,如下所示:
我正在用 C# 创建一个 WPF 应用程序。在我的窗口中有一个 DataGrid。在网格中有 2 列。第一列仅包含字符串。在第二列中,我想显示我创建的用户控件。 UserControl(称为:Prod
我不明白为什么代码的第一部分不起作用,但第二部分却起作用。 第 1 部分
我是一名优秀的程序员,十分优秀!