WPF将String值绑定到TextBlock

时间:2014-09-02 14:20:50

标签: xaml

我刚刚开始使用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正如预期的那样但这是它倒下,表单加载但是我的文本块中没有数据显示绑定到DataContext

请帮助

1 个答案:

答案 0 :(得分: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>