首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DataTemplate的使用

DataTemplate的使用
EN

Stack Overflow用户
提问于 2012-03-13 07:40:22
回答 2查看 144关注 0票数 1

出于这个原因,我对C#和Windows phone7还是个新手,但尽管如此,我还是全身心地投入到为自己开发一个小应用的工作中。这就是我的问题:

我正在尝试设置一个DataTemplate,它将定位我的名字和我在MainPage.xaml.cs中声明的饮料变量。以下是单击button1时的操作:

代码语言:javascript
复制
        private void button1_Click(object sender, RoutedEventArgs e)
    {
        string Name = participantName.Text;
        int Drinks = 0;

        listBox1.Items.Add(Name + Drinks);
    }

这是我来自MainPage.xaml的DataTemplate

代码语言:javascript
复制
            <ListBox Height="Auto" HorizontalAlignment="Stretch" Margin="7,74,0,0" Name="listBox1" VerticalAlignment="Stretch" Width="Auto">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal" Height="132">
                        <TextBlock Text="{Binding Path=Name}" FontSize="35" />
                        <StackPanel Width="370">
                            <TextBlock Text="{Binding Path=Drinks}" FontSize="35" />
                        </StackPanel>
                    </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

问题是我的数据没有显示出来。它在没有DataTemplate的情况下工作得很好,但一旦我使用它,我的文本就无法通过。非常感谢您的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-13 07:52:20

模板本身是正常的。然而,模板上的绑定目前是不正确的。

当您向列表框添加新项时,您只是添加了一个普通旧字符串(当前缺少空格BTW)。但是,您的绑定要求列表中的对象具有Name属性和Drinks属性,而string类当然没有这些属性。

这里通常的解决方案是在逻辑上将数据模型与表示分离,方法是创建一个类来存储数据本身(可能是PersonDrink,使用适当的NameDrinks属性),然后将这些对象添加到列表中。

您应该阅读MVVM模式,因为它提供了一种很好的方法来确保数据中的更改反映在视图中,反之亦然。

票数 1
EN

Stack Overflow用户

发布于 2012-03-13 12:10:32

http://amarchandra.wordpress.com/2011/12/18/binding-multiple-object-in-wp7-using-listbox/

下面是一个使用数据模板绑定数据的示例。我希望这对你有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9676361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档