C# 如何在dataGridCell工具提示上设置多重绑定?
我正在尝试为datagridcell绑定工具提示中的两个文本源。 这就是xaml: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"> <
<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