我正在尝试将字符串参数从另一个xaml页面(单击按钮时)传递到内容对话框中,并将其显示在另一种颜色的文本块中。
文本块文本示例:
嘿 - 红色的参数 - 蓝色的参数 - ,......一些文字...... - 另一种颜色的参数 -
我当前的方法是创建具有不同属性的多个文本块,然后以编程方式将文本设置为构造函数中的相应文本块。
冗余代码太多,我相信有一个更优雅的解决方案,我希望有人可以指出我正确的方向。有些东西告诉我它有约束力,但我不知道该怎么办。 (我是XAML的新手并试图通过简单的开始来解决问题)
答案 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>