在WP7中构建画布模板

时间:2012-08-29 19:58:05

标签: c# silverlight windows-phone-7 xaml

我正在尝试构建一个高尔夫游戏跟踪程序,该程序使用画布为每个玩家保存一组排列的按钮和数据绑定项目。因为游戏中的人数是动态的,所以我需要能够动态地构建画布并且还可以动态绑定它们。我遇到的问题是设置数据绑定。如果我尝试在代码中绑定,那么绑定的文本(text = {Binding})总是出现,就好像它是字符串文字而不是实际绑定。为了解决这个问题,我试图构建一个画布模板,但是当我构建新玩家时,我无法找到将模板实际应用到新画布的方法。

因此,考虑到所有这些,最好的方法是A)使用我的所有控件构建模板画布,这样我就可以复制并绑定到每个播放器,或者B)动态构建文本绑定而无需求助到XAML?

编辑:添加以下内容以澄清我是如何创建文本块的。

TextBlock newBlock = new TextBlock
        {
            Text = "{Binding}",
            FontSize = 42,
            DataContext = Player.SomeStat,
            Name = Player.PlayerName ,

        };

屏幕上显示的文本块(而不是它应该是)的值是:{Binding}

2 个答案:

答案 0 :(得分:1)

要在代码中创建绑定,您需要执行一些额外的步骤:

object myDataObject = DataContext;
Binding myBinding = new Binding();
myBinding.Source = myDataObject;
myBinding.Path="."; // not sure if required
newBlock.SetBinding(TextBlock.TextProperty, myBinding);

答案 1 :(得分:0)

假设你想要绑定到Control实例的datacontext,你的代码就在......

textBlock.SetBinding(TextBlock.TextProperty, new Binding("Foo"));
textBlock.DataContext = this.DataContext;