将字符串参数传递给文本块

时间:2014-11-28 17:31:15

标签: c# xaml windows-phone-8.1

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

文本块文本示例:

  

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

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

冗余代码太多,我相信有一个更优雅的解决方案,我希望有人可以指出我正确的方向。有些东西告诉我它有约束力,但我不知道该怎么办。 (我是XAML的新手并试图通过简单的开始来解决问题)

1 个答案:

答案 0 :(得分:2)

您可以将对象设置为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>