出于这个原因,我对C#和Windows phone7还是个新手,但尽管如此,我还是全身心地投入到为自己开发一个小应用的工作中。这就是我的问题:
我正在尝试设置一个DataTemplate,它将定位我的名字和我在MainPage.xaml.cs中声明的饮料变量。以下是单击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的情况下工作得很好,但一旦我使用它,我的文本就无法通过。非常感谢您的帮助。
发布于 2012-03-13 07:52:20
模板本身是正常的。然而,模板上的绑定目前是不正确的。
当您向列表框添加新项时,您只是添加了一个普通旧字符串(当前缺少空格BTW)。但是,您的绑定要求列表中的对象具有Name属性和Drinks属性,而string类当然没有这些属性。
这里通常的解决方案是在逻辑上将数据模型与表示分离,方法是创建一个类来存储数据本身(可能是PersonDrink,使用适当的Name和Drinks属性),然后将这些对象添加到列表中。
您应该阅读MVVM模式,因为它提供了一种很好的方法来确保数据中的更改反映在视图中,反之亦然。
发布于 2012-03-13 12:10:32
http://amarchandra.wordpress.com/2011/12/18/binding-multiple-object-in-wp7-using-listbox/
下面是一个使用数据模板绑定数据的示例。我希望这对你有帮助。
https://stackoverflow.com/questions/9676361
复制相似问题