C# 如何在dataGridCell工具提示上设置多重绑定?

C# 如何在dataGridCell工具提示上设置多重绑定?,c#,wpf,mvvm,C#,Wpf,Mvvm,我正在尝试为datagridcell绑定工具提示中的两个文本源。 这就是xaml: <Style x:Key="DataGridCellStyle" TargetType="{x:Type DataGridCell}"> <Style.Setters> <!--Some other setter properties--> <Setter Property="ToolTip"> <

我正在尝试为datagridcell绑定工具提示中的两个文本源。 这就是xaml:

<Style x:Key="DataGridCellStyle" TargetType="{x:Type DataGridCell}">
    <Style.Setters>
        <!--Some other setter properties-->
        <Setter Property="ToolTip">
            <Setter.Value>
                <MultiBinding Converter="{StaticResource TooltipMultiValueConverter}" UpdateSourceTrigger="PropertyChanged">
                    <Binding Path="{Binding Path=ControlValue, Converter = {StaticResource FloatToString}, ConverterParameter=F2}"></Binding>
                    <Binding Path="{Binding Path=StatusText}"></Binding>
                </MultiBinding>
            </Setter.Value>
        </Setter>
    </Style.Setters>
</Style>
但我的应用程序每次都会因为以下错误而崩溃:

'Provide value on 'System.Windows.Markup.StaticResourceHolder' threw an exception.'

我不知道我应该提供什么价值?如果我不使用多重绑定并提供单个文本源作为一个值,那么效果很好…

您应该将
多重绑定的
Converter
属性设置为
TooltipMultiValueConverter
,但您不需要将
ControlValue
属性转换为
String.Concat
方法接受
对象类型的参数

<local:TooltipMultiValueConverter x:Key="TooltipMultiValueConverter" />
<Style x:Key="DataGridCellStyle" TargetType="{x:Type DataGridCell}">
    <Style.Setters>
        <!--Some other setter properties-->
        <Setter Property="ToolTip">
            <Setter.Value>
                <MultiBinding Converter="{StaticResource TooltipMultiValueConverter}">
                    <Binding Path="{Binding Path=ControlValue}"></Binding>
                    <Binding Path="{Binding Path=StatusText}"></Binding>
                </MultiBinding>
            </Setter.Value>
        </Setter>
    </Style.Setters>
</Style>

您应该将
多重绑定
转换器
属性设置为
工具IPMultiValueConverter
,但不需要将
控制值
属性转换为
字符串。Concat
方法接受
对象
类型的参数:

<local:TooltipMultiValueConverter x:Key="TooltipMultiValueConverter" />
<Style x:Key="DataGridCellStyle" TargetType="{x:Type DataGridCell}">
    <Style.Setters>
        <!--Some other setter properties-->
        <Setter Property="ToolTip">
            <Setter.Value>
                <MultiBinding Converter="{StaticResource TooltipMultiValueConverter}">
                    <Binding Path="{Binding Path=ControlValue}"></Binding>
                    <Binding Path="{Binding Path=StatusText}"></Binding>
                </MultiBinding>
            </Setter.Value>
        </Setter>
    </Style.Setters>
</Style>


如果这是您的确切代码-您忘记为多重绑定实际设置转换器<代码>
忘记复制了,我更新了代码中的转换器。然后,您需要查看您提供的InnerException of exception-这里有更多信息。如果这是您的确切代码-您忘记实际为多重绑定设置转换器<代码>忘记复制了,我更新了代码中的转换器。然后,您需要查看您提供的异常的内部异常-那里有更多信息。这一行做什么?它像是对转换器的引用吗?我应该如何调整它以适应我的项目?是的,您需要将转换器定义为一种资源。“本地”是指定义转换器类(ToolTimpultiValueConverter)的命名空间:。用我精确的XAML标记替换你的样式。我根本没有正确引用它,事实上:DW这行是做什么的?它像是对转换器的引用吗?我应该如何调整它以适应我的项目?是的,您需要将转换器定义为一种资源。“本地”是指定义转换器类(ToolTimpultiValueConverter)的命名空间:。用我精确的XAML标记替换你的样式。实际上,我没有正确引用它:D