Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF-具有多重绑定的工具提示_C#_Wpf_Tooltip_Multibinding - Fatal编程技术网

C# WPF-具有多重绑定的工具提示

C# WPF-具有多重绑定的工具提示,c#,wpf,tooltip,multibinding,C#,Wpf,Tooltip,Multibinding,我想在一个文本块中创建一个带有多重绑定的工具提示,但不管我怎么做,它都不起作用 以下是我到目前为止所做的尝试: <TextBlock Text="{Binding Description, StringFormat='Description : {0}{}'}"> <ToolTipService.ToolTip> <TextBlock> <TextBlock.Text>

我想在一个文本块中创建一个带有多重绑定的工具提示,但不管我怎么做,它都不起作用

以下是我到目前为止所做的尝试:

<TextBlock Text="{Binding Description, StringFormat='Description : {0}{}'}">
    <ToolTipService.ToolTip>
        <TextBlock>
            <TextBlock.Text>
                <MultiBinding StringFormat="Description : {0}{1}{}">
                    <Binding Path="FirstDescription" />
                    <Binding Path="SecondDescription" />
                </MultiBinding>
            </TextBlock.Text>
        </TextBlock>
    </ToolTipService.ToolTip>
</TextBlock>

但当我尝试时,我在工具提示上看到的是:System.Windows.Controls.TextBlock

当我在没有工具提示服务的情况下尝试时,只有工具提示,如下所示:

<TextBlock Text="{Binding Description, StringFormat='Description : {0}{}'}">
    <ToolTip>
        <TextBlock>
            <TextBlock.Text>
                <MultiBinding StringFormat="Description : {0}{1}{}">
                    <Binding Path="FirstDescription" />
                    <Binding Path="SecondDescription" />
                </MultiBinding>
            </TextBlock.Text>
        </TextBlock>
    </ToolTip>
</TextBlock>


屏幕卡住了。

删除空括号即可。下一个代码按预期工作:

<TextBlock Text="{Binding Description, StringFormat='Description : {0}'}">
    <ToolTipService.ToolTip>
        <TextBlock>
                    <TextBlock.Text>
                        <MultiBinding StringFormat="Description : {0}{1}">
                            <Binding Path="FirstDescription" />
                            <Binding Path="SecondDescription" />
                        </MultiBinding>
                    </TextBlock.Text>
        </TextBlock>
    </ToolTipService.ToolTip>
</TextBlock>

如果StringFormat以左大括号{开头,XAML解析器要求您使用一对大括号{}对其进行转义。否则,解析器会感到困惑,因为大括号也用于标记扩展的语法中

有关详细信息,请参见的XAML文档


此外,不能在内联绑定中使用双引号,但可以使用单引号。

我不知道您使用的是哪个版本,但是:

<TextBlock Text="{Binding Description, StringFormat="Description : {0}{}"}">

甚至没有为我编译

只需删除“和空括号,如下所示:

<TextBlock Text="{Binding Description, StringFormat=Description : {0}">

如果您想要,也可以这样写:


我尝试了以下代码,效果非常好:

<TextBlock Margin="20" Foreground="Black" FontSize="20" FontFamily="Century Gothic" Text="{Binding Name1}">
        <TextBlock.ToolTip>
            <TextBlock>
                <TextBlock.Text>
                    <MultiBinding StringFormat="MultiBinded Tooltip : {0}{1}">
                        <Binding Path="Name1"/>
                        <Binding Path="Name2"/>
                    </MultiBinding>
                </TextBlock.Text>
            </TextBlock>
        </TextBlock.ToolTip>
    </TextBlock>


我已经试过了,但在工具提示中我只能看到:System.Windows.Controls。TextBlock@Pachu你能给我看一下代码吗?我想你需要实现overrideTostring()方法。@Pachu你有多绑定工具提示的方法吗?@Pachu好的,我回答了你关于方括号和添加整个训练代码的问题。使用后你还有什么问题吗?我有,我在工具提示中看到以下文本:“System.Windows.Controls.TextBlock”而不是我想要的文本。抱歉,我无法重现您的问题。我删除了空括号,现在代码工作正常。您使用的是什么版本的.net framework?您的示例是否是样式/模板的一部分?.net 4.5,是的,它是数据模板的一部分我猜是“System.Windows.Controls.TextBlock”是工具提示中实际绑定的内容。填充说明、第一个说明和第二个说明的代码是什么?请删除空括号,以确保。然后,正如我所说,您可能在如何填充绑定方面遇到问题,它应该工作。它显示“System.Windows.Controls.TextBlock”这可能意味着您在代码隐藏中编写了Description=newtextblock()之类的代码?
<TextBlock Margin="20" Foreground="Black" FontSize="20" FontFamily="Century Gothic" Text="{Binding Name1}">
        <TextBlock.ToolTip>
            <TextBlock>
                <TextBlock.Text>
                    <MultiBinding StringFormat="MultiBinded Tooltip : {0}{1}">
                        <Binding Path="Name1"/>
                        <Binding Path="Name2"/>
                    </MultiBinding>
                </TextBlock.Text>
            </TextBlock>
        </TextBlock.ToolTip>
    </TextBlock>