Windows Phone 8.0 listbox / Combobox

时间:2014-03-13 13:53:12

标签: c# wpf windows-phone-8 combobox listbox

我是WP编程的新手,我之前使用过Borland Delphi / PHP / MySQL ..

我想拥有组合框或列表框(我知道WP8没有任何组合框:()

我尝试了很多选项,但我的列表框没有出现在屏幕上。按钮,文本都可以通过列表框在运行时永远不会显示。并且在编译器上也没有任何错误。

您能否一步一步地帮助我如何为以下项目创建一个组合框/列表框:

C,C#,D,D#,E,F,F#,G,G#,A,A#,B

我希望在列表中有这些,当用户选择其中一个时,我将从他为用户选择的键开始制作一些音阶缩放选项。

如果你能解释我的WP8:

  1. 如何在MainPage.xaml中定义列表框
  2. 如何创建绑定
  3. 如何在MainPage.xaml.cs中定义列表并绑定到列表框
  4. 我安装了工具包并尝试了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}

1 个答案:

答案 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>