1

我想绑定项目对象中的 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>
4

2 回答 2

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;
    }
}
于 2013-04-08T10:19:12.193 回答
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) -没有tthere

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

于 2013-04-08T13:53:56.963 回答