【问题标题】:Passing a string parameter to a textblock将字符串参数传递给文本块
【发布时间】:2014-11-28 17:31:14
【问题描述】:

我正在尝试将另一个 xaml 页面(单击按钮时)的字符串参数传递到内容对话框中,并以另一种颜色在文本块中显示它。

文本块文本示例:

嘿-红色的参数-,蓝色的参数-,...一些文本...-另一种颜色的参数-

我目前的方法是创建几个具有不同属性的文本块,然后在构造函数中以编程方式将文本设置为相应的文本块。

冗余代码太多,我相信有一个更优雅的解决方案,我希望有人能指出我正确的方向。有些东西告诉我它的约束力,但我不知道如何进行。 (我是 XAML 的新手,并试图从一些简单的事情开始找出我的出路)

【问题讨论】:

  • 你能提供一些澄清吗?您的对话框(可能是Window 实例?)是否在单击按钮时实例化?您想在对话框中显示多个参数和颜色吗?
  • 是windows phone中的内容对话框。它类似于有文本块标记的普通 XAML 页面。此内容对话框将在从另一个 xaml 页面单击按钮时实例化。是的,有多个参数和不同的颜色要通过文本块显示在对话框中。 (我认为我可以通过文本块属性设置颜色)。

标签: c# xaml windows-phone-8.1


【解决方案1】:

您可以将对象设置为ContentDialog.DataContext,然后使用绑定来实现您想要的。

在您的 Button.Click 处理程序中,设置数据上下文:

private void Button_Click(object sender, RoutedEventArgs args)
{
    ContentDialog dialog = new ContentDialog
    {
        DataContext = new
        {
            RedText = "Red Colour",
            BlueText = "Blue Colour"
        }
    };

    dialog.ShowAsync();
}

然后在ContentDialog 的 XAML 中,您可以有如下内容:

<ContentDialog>
    <TextBlock>Hey <TextBlock Background="Red" Text="{Binding RedText}"/>, well <TextBlock Background="Blue" Text="{Binding BlueText}"/></TextBlock>
</ContentDialog>

【讨论】:

  • 嘿,非常感谢!我想我正在寻找的部分是关于数据上下文传递的部分!
猜你喜欢
  • 2016-09-15
  • 2016-03-16
  • 1970-01-01
  • 1970-01-01
  • 2011-05-12
  • 2021-09-02
  • 2021-01-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多