在XAML中定义Windows应用商店应用资源

时间:2014-10-02 05:59:56

标签: xaml c#-4.0 windows-store-apps

<Page x:Class="Myprog.StartPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Myprog"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">

<Page.Resources>
    <DataTemplate x:Key="ItemTemplate2">
        <Border BorderThickness="1" Height="36" Width="598" Margin="0 -5" Padding="2" BorderBrush="#FFE2E2E2">
            <Grid Background="#eee" KeyDown="Grid_KeyDown_1">
                <Grid.Resources>
                    <local:strConverter x:Name="sameera1"/>
                </Grid.Resources>
                <TextBlock TextWrapping="Wrap" Text="{Binding ProductDesc,Converter={StaticResource sameera1}}" Margin="0,0,227,0" Foreground="Black" Padding="6,5,0,0"/>
            </Grid>
        </Border>
    </DataTemplate>
</Page.Resources>

and then other elements...

在我的代码中,我在名称空间Myprog.StartPage中定义了类strConverter。 startPage是包含设计的页面。

我使用此资源strConverter来修改&#34; ProductDesc&#34;的值。

<Grid.Resources>
   <local:strConverter x:Name="sameera1"/>
</Grid.Resources>

编译以下错误信息时显示..

名称&#34; strConverter&#34;命名空间中不存在&#34;使用:Myprog&#34;。

我如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

如果要使用资源,则需要声明该资源的密钥。

所以你应该修改你的资源声明:

<Grid.Resources>
   <local:strConverter x:Key="sameera1"/>
</Grid.Resources>

然后,name属性在ResourceDictionary中没有任何意义。