ComboBox Asli tidak menampilkan pilihan dengan benar

EDIT: Tampaknya ListPicker adalah cara yang harus dilakukan tetapi saya memiliki masalah lebih lanjut dengan detail tersebut Microsoft.Phone.Controls.Toolkit ListPicker menampilkan XamlParseException

Saya memiliki ComboBox berikut dalam kode:

<ComboBox x:Name="Result" Grid.Column="6" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="Black" Background="White">   
    <ComboBoxItem Content="Win" />  
    <ComboBoxItem Content="Place" />  
    <ComboBoxItem Content="Lose" />  
</ComboBox> 

Tapi itu tidak ditampilkan seperti yang saya harapkan. Saat drop down ComboBox pilihannya tidak muncul, hanya seperti barang kosong. Lihat di bawah:

masukkan deskripsi gambar di sini

Namun, ketika suatu item dipilih, item tersebut ditampilkan dengan benar dan indeks/item yang benar dikembalikan. Lihat di bawah:

masukkan deskripsi gambar di sini

Saya yakin ada sesuatu yang sederhana yang saya lewatkan tetapi tidak dapat saya pahami.

EDIT: Oke, saya memposting kode lengkap untuk ini. Saya memiliki kontrol pengguna, OddsRow, yang terlihat seperti ini:

<UserControl xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"  x:Class="MojoPinBetOddsCalculator.OddsRow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    FontFamily="{StaticResource PhoneFontFamilyNormal}"
    FontSize="{StaticResource PhoneFontSizeNormal}"
    Foreground="{StaticResource PhoneForegroundBrush}"
    d:DesignHeight="480" d:DesignWidth="480">

    <Grid x:Name="LayoutRoot" Background="{StaticResource PhoneChromeBrush}">
        <Grid.RowDefinitions>
            <RowDefinition Height="70"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="50*"></ColumnDefinition>
            <ColumnDefinition Width="70*"></ColumnDefinition>
            <ColumnDefinition Width="30*"></ColumnDefinition>
            <ColumnDefinition Width="70*"></ColumnDefinition>
            <ColumnDefinition Width="70*"></ColumnDefinition>
            <ColumnDefinition Width="70*" ></ColumnDefinition>
            <ColumnDefinition Width="100*"></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <TextBlock x:Name="RowNumber" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Center"></TextBlock>
        <TextBox x:Name="OddsNumerator" Grid.Column="1" Width="90" Height="70" HorizontalAlignment="Center" TextAlignment="Center" VerticalAlignment="Center" MaxLength="3" InputScope="TelephoneNumber"></TextBox>
        <TextBlock x:Name="Slash" Grid.Column="2" Text="/" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
        <TextBox x:Name="OddsDenominator" Grid.Column="3" Width="90" Height="70" VerticalAlignment="Center" TextAlignment="Center" MaxLength="3" HorizontalAlignment="Center" InputScope="TelephoneNumber"></TextBox>
        <CheckBox x:Name="EachWay" Grid.Column="4" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="10,0,0,0" />
        <CheckBox x:Name="Place" Grid.Column="5" HorizontalAlignment="Center" VerticalAlignment="Center" BorderThickness="0" Width="71" Margin="10,0,0,0" Padding="0" />
        <ComboBox x:Name="Result" Grid.Column="6" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="Black" Background="White">
            <ComboBoxItem Content="Win" />
            <ComboBoxItem Content="Place" />
            <ComboBoxItem Content="Lose" />
        </ComboBox>
    </Grid>
</UserControl>

Dan itu ditampilkan di Halaman Utama seperti ini:

<phone:PhoneApplicationPage xmlns:my="clr-namespace:MojoPinBetOddsCalculator"  
    x:Class="MojoPinBetOddsCalculator.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"
    FontFamily="{StaticResource PhoneFontFamilyNormal}"
    FontSize="{StaticResource PhoneFontSizeNormal}"
    Foreground="{StaticResource PhoneForegroundBrush}"
    SupportedOrientations="Portrait" Orientation="Portrait"
    shell:SystemTray.IsVisible="True">

    <!--LayoutRoot is the root grid where all page content is placed-->
    <Grid x:Name="LayoutRoot" Background="Transparent">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>

        <!--TitlePanel contains the name of the application and page title-->
        <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
            <TextBlock x:Name="ApplicationTitle" Text="BET ODDS CALCULATOR" Style="{StaticResource PhoneTextNormalStyle}"/>
            <TextBlock x:Name="PageTitle" Text="calculate" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
        </StackPanel>
        <!--ContentPanel - place additional content here-->
        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0" HorizontalAlignment="Stretch">
            <Grid x:Name="Scrollable">
                <ScrollViewer>
                <Grid x:Name="BettingGrid">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"></RowDefinition>
                        <RowDefinition Height="*"></RowDefinition>
                    </Grid.RowDefinitions>
                    <Grid x:Name="BetList">
                        <Grid.RowDefinitions>
                            <RowDefinition Height="30"></RowDefinition>
                            <RowDefinition Height="70"></RowDefinition>
                            <RowDefinition Height="70"></RowDefinition>
                            <RowDefinition Height="70"></RowDefinition>
                            <RowDefinition Height="70"></RowDefinition>
                            <RowDefinition Height="70"></RowDefinition>
                            <RowDefinition Height="70"></RowDefinition>
                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="50*"></ColumnDefinition>
                            <ColumnDefinition Width="70*"></ColumnDefinition>
                            <ColumnDefinition Width="30*"></ColumnDefinition>
                            <ColumnDefinition Width="70*"></ColumnDefinition>
                            <ColumnDefinition Width="70*"></ColumnDefinition>
                            <ColumnDefinition Width="70*"></ColumnDefinition>
                            <ColumnDefinition Width="100*"></ColumnDefinition>
                        </Grid.ColumnDefinitions>
                        <TextBlock Text="EW"  Style="{StaticResource PhoneTextNormalStyle}" Grid.Row="0" Grid.Column="4" HorizontalAlignment="Center" />
                        <TextBlock Text="Place"  Style="{StaticResource PhoneTextNormalStyle}" Grid.Row="0" Grid.Column="5" HorizontalAlignment="Center" />
                        <TextBlock Text="Result"  Style="{StaticResource PhoneTextNormalStyle}" Grid.Row="0" Grid.Column="6" HorizontalAlignment="Center" />
                        <my:OddsRow Grid.Row="1" Grid.ColumnSpan="7" Row="1"/>
                        <my:OddsRow Grid.Row="2" Grid.ColumnSpan="7" Row="2"/>
                        <my:OddsRow Grid.Row="3" Grid.ColumnSpan="7" Row="3"/>
                        <my:OddsRow Grid.Row="4" Grid.ColumnSpan="7" Row="4"/>
                        <my:OddsRow Grid.Row="5" Grid.ColumnSpan="7" Row="5"/>
                        <my:OddsRow Grid.Row="6" Grid.ColumnSpan="7" Row="6"/>
                    </Grid>
                    <Grid x:Name="ControlsGrid" Grid.Row="1">
                        <Button x:Name="AddRowButton" Background="#BFFFFFFF" BorderBrush="#BFFFFFFF" Foreground="Black" Content="Add Row" FontSize="16" Click="AddRowButton_Click" Height="70" />
                    </Grid>
                </Grid>
                </ScrollViewer>
            </Grid>
        </Grid>
    </Grid>
</phone:PhoneApplicationPage>

Secara terpisah, ComboBox berfungsi, dan juga kode untuk OddsRow berfungsi seperti yang diharapkan... secara terpisah. Jika digabungkan tidak menampilkan item.

OddsRow.xaml.cs

public partial class OddsRow : UserControl
{
    private int m_Row;

    public OddsRow()
    {
        InitializeComponent();
    }

    public int Row
    {
        get
        {
            return m_Row;
        }
        set
        {
            m_Row = value;
            RowNumber.Text = m_Row + " - ";
        }
    }
}

person anothershrubery    schedule 11.04.2012    source sumber
comment
Ini berfungsi dengan baik untuk saya. Mungkinkah itu gaya khusus yang membuat teks di kotak kombo menjadi putih?   -  person Robaticus    schedule 12.04.2012
comment
Hmm...Ya, itu berfungsi seperti yang diharapkan ketika saya memasukkannya ke dalam proyek terpisah. Mungkin saya akan memposting markup lengkapnya untuk melihat apakah ada yang bisa mengenalinya.   -  person anothershrubery    schedule 12.04.2012
comment
Apakah Anda melakukan sesuatu dengan ComboBox pada kode di belakang? Karena markup Anda terlihat bagus... dapatkah Anda memposting juga bagian kode yang relevan di belakangnya?   -  person nemesv    schedule 12.04.2012
comment
Menambahkan kode di belakang. Sama sekali tidak ada hal spektakuler yang terjadi di sana. Bahkan belum melakukan apa pun pada kode MainPage. AddRowButton baru saja memiliki event handler kosong untuk saat ini.   -  person anothershrubery    schedule 12.04.2012


Jawaban (1)


Demi cinta semuanya, tolong jangan gunakan stok ComboBox. Gunakan sesuatu seperti ListPicker. Ini akan membuat aplikasi Anda terlihat lebih konsisten dengan Metro UI.

person Den Delimarsky    schedule 11.04.2012
comment
Saya akan memeriksa ListPicker ketika saya mendapat kesempatan. Telah melihatnya sekilas dan mendapatkan InvalidProgramException tapi saya yakin itu mudah diurutkan dengan melihatnya lebih baik. - person anothershrubery; 12.04.2012
comment
Jika saya mempunyai tombol +10, saya akan mengkliknya untuk jawaban @Dennis... tolong jangan gunakan kontrol ComboBox dan gunakan ListPicker!!! - person Pedro Lamas; 12.04.2012
comment
Saya menandai ini sebagai jawaban karena tampaknya ini adalah jalur yang tepat untuk turun, namun saya memiliki masalah lebih lanjut dengan ListPicker, dirinci di stackoverflow.com/questions/10155688/ - person anothershrubery; 14.04.2012