如何将 dataGrid1.CurrentCell(或其内容)作为参数传递给绑定到 dataGrid2.CellStyl

本文关键字:参数传递 绑定 CellStyl dataGrid2 dataGrid1 CurrentCell | 更新日期: 2023-09-27 18:34:06

我想知道是否有可能传递数据网格。CurrentCell(或其内容或数据网格本身(作为绑定到另一个数据网格的转换器的转换器参数。我正在尝试突出显示第二个 dg 的单元格,其中包含第一个 dg 的选定(当前(单元格中包含的值之一。到目前为止,我设法通过将它的 CellStyle(相对源自身(属性绑定到所述转换器来访问第二个数据网格的单元格。

更新:正如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 在工作,而它不在我的系统上!

如何将 dataGrid1.CurrentCell(或其内容)作为参数传递给绑定到 dataGrid2.CellStyl

ConverterParameter 不支持绑定。尝试使用多重绑定绑定到所需的属性(网格的选定项或网格的当前单元格内容(,并使用 IMultiValueConverter 对属性进行多重绑定