Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.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# 如何从一个XAML对象值引用另一个XAML对象值?_C#_Xaml - Fatal编程技术网

C# 如何从一个XAML对象值引用另一个XAML对象值?

C# 如何从一个XAML对象值引用另一个XAML对象值?,c#,xaml,C#,Xaml,XAML能够构建C#对象的树,就像在代码中一样;然而,尽管我可以毫无问题地实例化对象,但我仍然坚持使用将一个对象初始化为另一个对象的值的语法(如果这是可能的话) 为了说明,考虑下面的无意义的例子: <Application xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class=

XAML能够构建C#对象的树,就像在代码中一样;然而,尽管我可以毫无问题地实例化对象,但我仍然坚持使用将一个对象初始化为另一个对象的值的语法(如果这是可能的话)

为了说明,考虑下面的无意义的例子:

<Application xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="MyClass">

    <x:String x:Name="MyString">Hello</x:String>

    <x:String x:Name="MyString2">STUCK FOR SYNTAX HERE</x:String>

你好
这里的语法卡住了

字符串被实例化。我可以在调试器中看到它们,我可以编写代码来操作它们,就像它们是普通的C#代码一样。我的问题是:我可以使用第一个字符串“Hello”的值初始化第二个字符串吗?或者,更一般地说,我可以从另一个XAML对象访问一个XAML对象的值吗


希望这有意义。

您的代码片段无法编译。您的问题的答案是否定的,并且在这里有点冒险,但是您可能误用了XAML。正如Dennis在评论中所说,您应该使用数据绑定。与您尝试执行的操作最接近的操作是:

<Window ....
        xmlns:sys="clr-namespace:System;assembly=mscorlib" >
    <Window.Resources>
        <system:String x:Key="MyString">Hello</system:String>
        <system:String x:Key="MyString2">STUCK FOR SYNTAX HERE</system:String>
    </Window.Resources>
    <TextBlock>
        <TextBlock.Text>
            <MultiBinding StringFormat="{}{0} - {1}">
                <Binding Source="{StaticResource MyString}" />
                <Binding Source="{StaticResource MyString2}" />
            </MultiBinding>
        </TextBlock.Text>
    </TextBlock>
</Window>

你好
这里的语法卡住了
下面的代码将在文本块中显示“Hello-Stick FOR SYNTAX HERE”


无法在XAML中压缩字符串的原因是,您实际上正在初始化一个不支持任何其他类型标记的
System.String

这就是数据绑定的用途。但绑定是一个标记扩展,因此不能被视为“纯”XAML。谢谢您的评论。这让我意识到,我对纯XAML和标记扩展之间的区别并不清楚。更多阅读的时间到了…很抱歉代码没有编译。它在我的机器上出现了,但我在复制它时设法剪掉了一些。啊!我想我需要尝试想出一个更好的代码示例。我不想连接字符串。我只是觉得字符串可以成为我想要得到的最简单、最简短的例子。但是,正如您所说,字符串的问题在于它们不支持我正在尝试的初始化类型。我将尝试提出一个更好的例子。