繁体   English   中英

TextBlock.Text更新ViewModel和CodeBehind WPF

[英]TextBlock.Text update ViewModel and CodeBehind WPF

我正在尝试从CodeBehind(xaml.cs)和ViewModel Binding设置TextBlockText属性。

默认情况下,这些值是从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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM