如何在没有代码隐藏的纯XAML中声明/定义变量



请考虑以下XAML标记(Visual Studio 2010中的App.xaml文件):

<Application x:Class="UpdateTrigger.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:UpdateTrigger"
             xmlns:clr="clr-namespace:System;assembly=mscorlib"
             StartupUri="MainWindow.xaml">
    <Application.Resources>
        <clr:String x:Key="MyString">My string</clr:String>
    </Application.Resources>
</Application>

我可以像c#程序中的变量一样写入MyString吗?这就是我要做的:我试图通过纯XAML声明和定义变量,没有任何代码隐藏。这可能吗?

澄清编辑:

例如,如果我将MyString绑定到XAML中的文本框,用户可以在该文本框中输入吗?

是否可以绑定和修改资源对象?是也不是。你可以这样做,但是对象需要是可变的,所以不能是像Int32Boolean这样的值类型,或者String是不可变的引用类型。对象还需要有一些正在被修改的属性(BindingPath)——你不能替换整个对象本身。

更重要的问题可能是,你应该这样做吗?答案通常是否定的,但在某些情况下,它有时是有用的,例如,直接在View XAML中声明ViewModel实例以提供简单的设计器支持。一般来说,绑定到代码中的对象总是更好的,这样它们就可以轻松地与程序的其他部分交互,而无需依赖于运行时资源查找。如果您有数据留在视图中,如TextBlock只是镜像TextBox的值,通常最好直接将它们与ElementName Binding绑定在一起,而不是添加额外的中间人。

相关内容

  • 没有找到相关文章

最新更新