与对象绑定

时间:2013-04-08 10:05:39

标签: c# xaml mvvm microsoft-metro windows-store-apps

我想绑定项目对象中的projectName属性...这是我的view.xaml.cs文件..

代码背后:

        TempData t = new TempData();
        t.Contract = contract;
        t.Project = project;
        this.DataContext = t;

我在这样的文本块中将其绑定,但它不起作用。

XAML:

<TextBlock Text="{Binding ProjectName,  Mode=TwoWay}" 
           DataContext="{Binding t}" FontSize="20" 
           Foreground="Black" 
           TextAlignment="Right" 
           Margin="100,0,0,0">
     enter code here
</TextBlock>

2 个答案:

答案 0 :(得分:0)

当您在此时进行绑定时,属性名称和绑定路径必须与字符大小写相同。在这里,我发布了你想要的代码

XAML 两侧都没有DataContext。在XAML或代码隐藏

中使用
<TextBlock Text="{Binding ProjectName, Mode=TwoWay}" 
           FontSize="20" 
           Foreground="Black" 
           TextAlignment="Right" 
           Margin="100,0,0,0" />

C#

class TempData
{
    public string Contract { get; set; }
    public string ProjectName { get; set; }
}

public sealed partial class BlankPage2 : Page
{
    public BlankPage2()
    {
        this.InitializeComponent();
        string contract = "contract", project = "project";
        TempData t = new TempData();
        t.Contract = contract;
        t.ProjectName = project;
        this.DataContext = t;
    }
}

答案 1 :(得分:0)

我想你想说的是这个(但很难说)......

<TextBlock Text="{Binding Project.ProjectName,  Mode=TwoWay}" 
       FontSize="20" 
       Foreground="Black" 
       TextAlignment="Right" 
       Margin="100,0,0,0">
    ...
</TextBlock>

或者如果你想......

<TextBlock Text="{Binding ProjectName,  Mode=TwoWay}" 
       DataContext="{Binding Project}" FontSize="20" 
       Foreground="Black" 
       TextAlignment="Right" 
       Margin="100,0,0,0">
    ...
</TextBlock>

假设您的TempData.Project是某个带有ProjectName

的项目类
// in your code-behind...
this.DataContext = new TempData
{
    Contract = new Contrac{},
    Project = new Project{ ProjectName = "My proj...", }
}
// this is for the window or user-control (I guess) - thus DataContext to start with...

你的TextBox DataContext是相同的(TempData) - 那里没有t

这就是你已经的地方 - 即你的TextBox的'上下文'(除非你之间有其他一些控件,列表项等)。只需直接绑定到Project.ProjectName

即可