Use of DataTemplate

本文关键字:DataTemplate of Use | 更新日期: 2023-09-27 18:27:38

出于这个原因,我对C#和Windows Phone 7还很陌生,但我还是努力为自己制作一个小应用程序。这是我的问题:

我正在尝试设置一个DataTemplate,它将定位我在MainPage.xaml.cs中声明的Name和Drinks变量

        private void button1_Click(object sender, RoutedEventArgs e)
    {
        string Name = participantName.Text;
        int Drinks = 0;
        listBox1.Items.Add(Name + Drinks);
    }

这是我的数据模板来自MainPage.xaml

            <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的情况下工作得很好,但一旦我使用它,我的文本就无法通过。非常感谢你的帮助。

Use of DataTemplate

模板本身还可以。不过,模板上的绑定当前不正确。

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

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

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

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

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