我是WP编程的新手,我之前使用过Borland Delphi / PHP / MySQL ..
我想拥有组合框或列表框(我知道WP8没有任何组合框:()
我尝试了很多选项,但我的列表框没有出现在屏幕上。按钮,文本都可以通过列表框在运行时永远不会显示。并且在编译器上也没有任何错误。
您能否一步一步地帮助我如何为以下项目创建一个组合框/列表框:
C,C#,D,D#,E,F,F#,G,G#,A,A#,B
我希望在列表中有这些,当用户选择其中一个时,我将从他为用户选择的键开始制作一些音阶缩放选项。
如果你能解释我的WP8:
我安装了工具包并尝试了listpicker,但是没有工作。
我添加了我试过的部分: 嗨, 在MainPage.xaml我写这个代码作为最后一次尝试:
<ListBox ItemsSource="{Binding ScaleSharpx}" Width="50" Background="Blue">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBox Text="{Binding text}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
并在MainPage.xaml.cs中尝试了这些
public String[] ScaleSharpx = { "C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"};
页面上没有任何内容
如果我试试这个:
<ListBox x:Name="D1" ItemsSource="{Binding}" Width="50" Background="Blue">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBox Text="{Binding text}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
然后将此代码添加到MainPage.xaml.cs
this.D1.ItemsSource = ScaleSharpx;
我收到错误消息,
{System.InvalidOperationException:在使用ItemsSource之前,Items集合必须为空。 在System.Windows.Controls.ItemsControl.set_ItemsSource(IEnumerable value) 在Scale_Finder.MainPage..ctor()} System.Exception {System.InvalidOperationException}
答案 0 :(得分:0)
该异常意味着您的ListBox已在其Items
属性中包含项目。如果ItemsSource
属性仍为空,则无法设置Items
。
关于您的评论“为什么项目可以编辑?”那是因为您使用TextBox
来显示它。如果您希望项目显示为只读,则更适合使用TextBlock
代替:
<ListBox x:Name="D1" Width="50" Background="Blue">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>