1

我想知道是否可以将 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 正在工作,而它不在我的系统上!

4

1 回答 1

0

ConverterParameter 不支持绑定。尝试使用 MultiBinding 绑定到您想要的属性(网格的 SelectedItem 或网格的当前单元格内容)并使用 IMultiValueConverter 对属性进行多重绑定

于 2013-10-05T15:21:21.420 回答