【问题标题】:WPF Binding to String value to TextBlockWPF将字符串值绑定到TextBlock
【发布时间】:2014-09-02 22:55:03
【问题描述】:

我刚刚开始使用 WPF,我正在尝试了解绑定。

我有一个名为 GetVersion() 的方法返回值 1.2.3.2 我需要将此返回数据绑定到 TextBlock,以便将 1.2.3.2 返回到主窗口。

我的 MainWindow.xaml.cs 看起来像这样:

 public MainWindow()
    {
        InitializeComponent();
        GetSequoiaVersion getApiVersion = new GetSequoiaVersion();
        _value = getApiVersion.GetApiVersion();
        myTextBlock.DataContext = Value;
    }
    private string _value;
    public string Value
    {
        get 
        {
            return _value;

        }
        set
        {
            _value = value;
        }
....................

如果我调试程序,DataContext = Value 会显示 1.2.3.2 的值

我当前的 XAML 代码如下所示

  <Grid>
    <StackPanel Name="Display">
        <StackPanel Orientation="Horizontal">
            <TextBlock Text="API Version: " />
            <TextBlock x:Name="myTextBlock" Margin="200,0,0,0" Text="{Binding Value}" />
        </StackPanel>
    </StackPanel>                   
</Grid>

再次将返回数据传递给 DataContext 值(鼠标悬停会按预期显示 1.2.3.2,但如果它跌倒,表单会加载,但绑定到的文本块中没有数据显示数据上下文

请帮忙

【问题讨论】:

标签: xaml


【解决方案1】:

您的 MainWindow.xaml.cs 应如下所示

public partial class MainWindow : Window
{

    public MainWindow()
    {
        InitializeComponent();
        DataContext = ApiVersion.GetApiVerision();

    }

}


public class ApiVersion
{
    public string Version { get; set; }

    public static ApiVersion GetApiVerision()
    {

        var version = new ApiVersion() {Version = "1.2.3.2"};

        return version;
    }
}

你的 MainWindow.xaml 应该是这样的

 <Window x:Class="TestWPF.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
<Grid>

    <TextBlock Name="myTextBlock"
               Text="{Binding Version}" />

</Grid>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-14
    • 2021-09-05
    • 1970-01-01
    • 1970-01-01
    • 2011-10-20
    • 2011-02-02
    • 2011-01-01
    相关资源
    最近更新 更多