繁体   English   中英

Windows Phone 8.0列表框/组合框

[英]Windows Phone 8.0 listbox / Combobox

我对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中定义列表并绑定到列表框

我安装了工具包,也尝试了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值)处,在Scale_Finder.MainPage..ctor()}处System.Exception {System.InvalidOperationException}

该异常意味着您的ListBox的Items属性中已经有项目。 您不能设置ItemsSource除非Items属性仍然为空。

而关于您的评论“ 为什么项目是可编辑的? ”那是因为您使用TextBox来显示它。 如果希望项目显示为只读,则更适合使用TextBlock

<ListBox x:Name="D1" Width="50" Background="Blue">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding}" />
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM