繁体   English   中英

在 Silverlight 中使用 C# 代替 XAML

[英]Using C# instead of XAML in Silverlight

XAML 真的有必要吗? 如果有人真的想要,是否可以在运行时在 C# 代码中声明 Silverlight 页面上显示的所有内容? VISIFire 有示例代码,他们在 C# 代码中设置了他们的类之一,图表,然后通过简单的 C# 调用将其添加到用户界面:

LayoutRoot.Children.Add(chart);

如何使用我已经在 XAML 文件中定义的 class 进行类似的创建,但由于其他原因,我需要在运行时声明它? 如果我可以像在 XAML 中那样使用它,我认为它会起作用,因为它的显示没有错误。 它是这样声明的:

        <views:PrescriberPage01 x:Name="DashboardPrescriberPage01" 
    Visibility="Collapsed" SelectedProduct="{Binding SelectedProduct,
 Mode=TwoWay}"Grid.Row ="0"/>

我将如何在 C# 代码中声明它?

XAML 真的有必要吗?

我想不,您可能可以在代码中执行 XAML 中可以执行的所有操作。 但是 XAML 真的是一个非常非常方便的 go 方法。 我认为很少有人会不同意这一点。

我将如何在 C# 代码中声明它?

您可以在代码中创建绑定。 来自 MSDN 的示例 在您的情况下,它将类似于:

PrescriberPage01 page = new PrescriberPage01();
page.Visibility = Visibility.Collapsed;

Binding myBinding = new Binding("SelectedProduct");
myBinding.Mode = BindingMode.TwoWay;
myBinding.Source = this; // or whatever object carrying the property
                         // "SelectedProduct" that you bind against.

page.SetBinding(PrescriberPage01.SelectedProduct, myBinding);
LayoutRoot.Children.Add(page);

XAML 更适合以声明性方式描述用户界面,我建议使用 XAML 没有代码后面,我也建议查看 MVVM 模式

我宁愿说“当我可以使用 XAML 时,C# 对于 GUI 真的有必要吗”? XAML 非常好,并且是专门为 GUI 设计的。

你在这里有两个选择。 动态加载您的XAML

或者在代码中创建它。 (其他人在我再次输入时发布了解决方案;;))

简单的控制很容易,但是...您可能还希望对这些对象进行一些样式设置+您可能需要一个或两个 animation...这已经(大部分)在 xaml 中提供...而且非常容易...如果你非常讨厌 xaml 你可能想考虑“混合”;p

没有 Xaml 就无法创建的一个具体示例是 DataTemplate。

您可以编写代码,从 XAML 字符串创建 DataTemplate,但您不能直接在 c# 中将子项添加到新的 DataTemplate。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM