我想知道是否可以将 datagrid.CurrentCell (或者它的 Content 或 dataGrid 本身)作为 ConverterParameter 传递给绑定到另一个数据网格的转换器。我正在尝试突出显示第二个 dg 的单元格,其中包含第一个 dg 的 Selected(Current) Cell 中包含的值之一。到目前为止,我设法通过将其 CellStyle (RelativeSource Self) 属性绑定到所述转换器来访问第二个数据网格的单元格。
更新:正如nit的帖子所建议的,我做了如下:
<Window.Resources>
<local:currentValsHLM x:Key="cellColorConverter" />...
<DataGrid x:Name="dataGrid2" AutoGenerateColumns="True">
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="Background">
<Setter.Value>
<MultiBinding Converter="{StaticResource cellColorConverter}">
<MultiBinding.Bindings>
<Binding RelativeSource="{RelativeSource Self}" />
<Binding Path="Row" /><!--Neeeded because previous bind datacell Content will be always (friggin) null -->
<!-- Here i would like to bind to datagrid1 holding the data to compare in the converter -->
</MultiBinding.Bindings>
</MultiBinding>
</Setter.Value>
</Setter>
<Setter Property="FontWeight">
<Setter.Value>
<MultiBinding Converter="{StaticResource cellColorConverter}">
<MultiBinding.Bindings>
<Binding RelativeSource="{RelativeSource Self}" />
<Binding Path="Row" />
<!-- Same as above -->
</MultiBinding.Bindings>
</MultiBinding>
</Setter.Value>
</Setter>
</Style>
</DataGrid.CellStyle>
</DataGrid>
MultiBinding.Bindings 部分缺少数据((字符串)dataGrid1.CurrentCell.Content,我猜)转换器应该知道选择哪些单元格需要突出显示,哪些不需要。有没有办法获得这样的数据?
更新 2:而且....做到了!(好吧,愚蠢的)答案是<Binding ElementName="dataGrid1" />
。使用 CurrentItem[CurrentColumn.Header] 我终于可以保存(并挤压)我需要的数据。向我欢呼!
注:难以置信!到现在为止,第一个绑定确实提供了对 datagrid2 的当前 DataGridCell 的引用,其内容始终为空(所以没用),所以我需要第二个绑定来访问真实数据。现在,空白,WPF(代号 BTCH)发送到填充了实际值(真实值)的转换器对象。现在我明白所有帖子都说“为什么在我的朋友系统上 xaml 正在工作,而它不在我的系统上!