如何在Silverlight中的Xml中使用HardCode字符串

时间:2013-01-24 06:56:25

标签: c# xml silverlight

我是silverlight中的新手。我在

下面有一个小的xml文件
<FlowActivities>

 <SequenceFlow >

  <FlowWriteLine>

         hiiii

  </FlowWriteLine>

 </SequenceFlow>

</FlowActivities>

在这里我想在rootnode.like

中硬编码一些命名空间
<FlowActivities x:Class="WorkflowConsoleApplication1.modify" 
      xmlns="http://schemas.microsoft.com/netfx/2009/xaml/activities" 
      mc:Ignorable="sap2010"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
      sap2010:ExpressionActivityEditor.ExpressionActivityEditor="C#"
      xmlns:sap2010="http://schemas.microsoft.com/netfx/2010/xaml/activities/presentation"
      xmlns:sco="clr-namespace:System.Collections.ObjectModel;assembly=mscorlib"   
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

 <SequenceFlow >

  <FlowWriteLine>

         hiiii

  </FlowWriteLine>

 </SequenceFlow>

</FlowActivities>

获得这个我必须要做的事情......?请解决这个问题..?

2 个答案:

答案 0 :(得分:1)

XAML不是当前的XML文件,是一种基于XML的语言。因此,您无法编写随机的,不存在的XML标记。

在SL XAML文件中对字符串进行硬编码:

<UserControl
    x:Class="Test_SL_HardcodeString.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:system="clr-namespace:System;assembly=mscorlib" mc:Ignorable="d"
    d:DesignHeight="300"
    d:DesignWidth="400">

    <UserControl.Resources>
        <system:String x:Key="myString">This is a test string</system:String>
    </UserControl.Resources>

    <Grid x:Name="LayoutRoot" Background="White">
        <TextBox Text="{StaticResource myString}"/>
    </Grid>
</UserControl>

答案 1 :(得分:1)

你做不到。你必须设置像JoanComasFdz这样的变量。 如果必须使用相同的格式,则可以为例如创建单独的类(viewmodel)。 MyXMLData.cs读取和解析xml文件。读取XML节点并从此类中设置类变量“theString”。在XAML中,您可以在资源部分创建类的实例,并将Grid或文本框的数据上下文设置为该对象。

<UserControl
    x:Class="Test_SL_HardcodeString.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:system="clr-namespace:System;assembly=mscorlib" mc:Ignorable="d"
    xmlns:viewmodel="clr-namespace:MyNameSpace.ViewModels"
    d:DesignHeight="300"
    d:DesignWidth="400">

    <UserControl.Resources>
        <viewmodel:MyXMLData x:key="myxmldataclass"/>
    </UserControl.Resources>

    <Grid x:Name="LayoutRoot" Background="White" DataContext="{StaticResource myxmldataclass}" >
        <TextBox Text="{StaticResource theString}"/>
    </Grid>
</UserControl>