<TextBlock FontSize="20" Foreground="{x:Bind ????}">
<Run Text="{x:Bind Username}"></Run>
<Run Text=": "></Run>
<Run Text="{x:Bind Message}"></Run>
</TextBlock>
那就是TextBlock。我的期望是当textblock获取组合框内的字符串时,它将通过该字符串设置前景
<ComboBox
x:Name="CBBox"
PlaceholderText="Color"
Margin="10"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<x:String>Red</x:String>
<x:String>Yellow</x:String>
<x:String>Green</x:String>
<x:String>Purple</x:String>
<x:String>Back</x:String>
</ComboBox>
但我不知道该怎么绑定任何想法?
答案 0 :(得分:0)
通常,最好的方法是将ComboBox绑定到视图模型,然后将视图模型绑定到TextBlock。
但是,只要它们位于相同的范围(页面,用户控件,模板等),就可以直接绑定它们。您必须在此使用/
,而不是declare @t table (MyString VARCHAR(40) NULL)
insert @t (MyString)
values ('123456/'), ('53787899/'), ('68239003-21/'),
('5761289903120,7278/'), ('574738992842/478389')
select *
from @t
,因为您需要转换器。
您可以像这样绑定Foreground属性:
{Binding}
现在您需要添加ValueConverter,然后将其转换为画笔并将其返回。
这样的事情应该有效:
{x:Bind}
答案 1 :(得分:0)
Foreground =“{Binding ElementName = CBBox,Path = SelectedItem}”
<ComboBox
x:Name="CBBox"
PlaceholderText="Color"
Margin="10"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<x:String>Red</x:String>
<x:String>Yellow</x:String>
<x:String>Green</x:String>
<x:String>Purple</x:String>
<x:String>Back</x:String>
</ComboBox>
<TextBlock FontSize="20" Foreground="{Binding ElementName=CBBox,Path=SelectedItem}">
<Run Text="{x:Bind Username}"></Run>
<Run Text=": "></Run>
<Run Text="{x:Bind Message}"></Run>
</TextBlock>