0

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

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

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

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

        };

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

4

2 回答 2

1

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

object myDataObject = DataContext;
Binding myBinding = new Binding();
myBinding.Source = myDataObject;
myBinding.Path="."; // not sure if required
newBlock.SetBinding(TextBlock.TextProperty, myBinding);
于 2012-08-30T07:18:02.297 回答
0

假设您要绑定到代码所在的 Control 实例的数据上下文...

textBlock.SetBinding(TextBlock.TextProperty, new Binding("Foo"));
textBlock.DataContext = this.DataContext;
于 2012-08-30T23:39:09.117 回答