[英]TextBlock.Text update ViewModel and CodeBehind WPF
我正在尝试从CodeBehind(xaml.cs)和ViewModel
Binding设置TextBlock
的Text
属性。
默认情况下,这些值是从ViewModel加载的,效果很好。
XAML:
<TextBlock Name="test">
<TextBlock.Text>
<MultiBinding StringFormat=" ({0}, {1} of {2})">
<Binding Path="SeriesId" />
<Binding Path="SeriesName" />
<Binding Path="SeriesCalc" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
XAML.cs
在按钮点击事件中,尝试了以下操作:
test.DataContext = "Not Available";
要么
test.Text = "Not Available";
ViewModel:
在另一个按钮Command
我尝试将值分配给TextBlock
。
SeriesId= GetIds();
SeriesName= GetNamesWithDE();
SeriesCalc= CalculateValue();
但是一旦在后面的代码中设置了“ Not Available
”,就无法从ViewModel
覆盖它。
我哪里错了?
如果您编写test.Text = "Not Available";
然后通过用简单的字符串覆盖数据绑定来破坏数据绑定。 如果要完成,请使用数据绑定并从后面的代码中更改TextBlock
值,然后应更新绑定:
test.Text = "Not available";
test.GetBindingExpression(TextBlock.TextProperty).UpdateSource();
或使用SetCurrentValue
方法来设置依赖项属性的值而无需更改其值源。
test.SetCurrentValue(TextBlock.TextProperty, "Not available");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.