i_a*_*orf 10 silverlight xaml static constants windows-phone-7
我正在写一个Phone 7应用程序,我想在标记中引用常量值.我相信应该这样做的方式是通过x:静态.
但是,Visual Studio一直声称它不知道x:static.这里的秘诀是什么?我有以下内容:
<phone:PhoneApplicationPage
...
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
...
<Image Height="{x:Static App.ImageHeight}" ... />
...
Run Code Online (Sandbox Code Playgroud)
而且当然:
public partial class App : Application
{
public const double ImageHeight = 100;
...
Run Code Online (Sandbox Code Playgroud)
错误消息是"找不到类型'x:静态'.验证...".
Aus*_*amb 17
x:Static 仅在WPF中可用 - 浏览器的Silverlight和Windows Phone 7的Silverlight都不支持此标记扩展.
通常的解决方法是创建一个(非静态)类,该类具有简单地包装所需静态属性的属性,并创建一个作为资源的实例并以这种方式绑定它.
例*:
public class StaticSideEnums
{
public static Side Bid { get { return Side.Bid; } }
public static Side Ask { get { return Side.Ask; } }
}
Run Code Online (Sandbox Code Playgroud)
在资源(app.xaml)中:
<ResourceDictionary>
<local:StaticSideEnums x:Key="StaticSideEnums"/>
</ResourceDictionary>
Run Code Online (Sandbox Code Playgroud)
在使用它的xaml中:
<toolkit:ListPicker Name="picker" SelectionChanged="OnSelectionChanged">
<toolkit:ListPickerItem Content="Buy" Tag="{Binding Bid, Source={StaticResource StaticSideEnums}}" />
<toolkit:ListPickerItem Content="Sell" Tag="{Binding Ask, Source={StaticResource StaticSideEnums}}" />
</toolkit:ListPicker>
Run Code Online (Sandbox Code Playgroud)
*此示例取自在Enum中填充的ListPicker中使用本地化字符串的答案
| 归档时间: |
|
| 查看次数: |
2932 次 |
| 最近记录: |