为了这个缘故,我对C#和Windows Phone 7很陌生,但是,我已经投身于为自己制作一个小应用程序了。这是我的问题:
我正在尝试设置一个DataTemplate,它将定位我在MainPage.xaml.cs中声明的Name和Drinks变量。这是我点击button1时的动作:
private void button1_Click(object sender, RoutedEventArgs e)
{
string Name = participantName.Text;
int Drinks = 0;
listBox1.Items.Add(Name + Drinks);
}
这是来自MainPage.xaml的我的DataTemplate
<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的情况下完美运行,但是一旦我使用它,我的文本就无法通过。非常感谢您的帮助。
答案 0 :(得分:1)
模板本身没问题。但是,模板上的绑定目前不正确。
当您向列表框添加新项目时,您只是添加一个普通的旧字符串(当前缺少一个空格,BTW。)但是,您的绑定期望列表中的对象具有{{1属性和Name
属性,当然Drinks
类没有。
这里通常的解决方案是通过创建一个类来存储数据本身(可能是string
,并使用适当的PersonDrink
和Name
属性,从逻辑上将数据模型与您的演示文稿分开)然后将这些对象添加到列表中。
您应该阅读MVVM模式,因为它提供了一种确保数据更改反映在视图中的绝佳方法,反之亦然。
答案 1 :(得分:0)
http://amarchandra.wordpress.com/2011/12/18/binding-multiple-object-in-wp7-using-listbox/
以下是使用datatemplate绑定数据的示例。我希望这对你有帮助。