ItemTemplate Combox - PullRequest
       5

ItemTemplate Combox

0 голосов
/ 18 ноября 2011

Я хотел сохранить два элемента в Windows.UI.Xaml.Controls.ComboxBox.

  1. Строка, которая будет отображаться в ComboBox

  2. Индекс, который не будет отображаться в CombBox

Я исследовал и обнаружил, что свойство ItemTemplate может сделать это. Может кто-нибудь, пожалуйста, предоставьте мне образец для этого.

Ответы [ 2 ]

1 голос
/ 21 ноября 2011

Попробуйте это:

<UserControl
    x:Class="Application1.MainPage"
    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"
    d:DesignHeight="768" 
    d:DesignWidth="1366">
    <Grid 
        x:Name="LayoutRoot" 
        Background="#FF0C0C0C">
        <Rectangle
            x:Name="rect"
            Fill="Black"
            Margin="40,40,0,0" />

        <ComboBox
            Margin="40,40,0,0"
            VerticalAlignment="Top"
            HorizontalAlignment="Left"
            ItemsSource="{Binding Items}">
            <ComboBox.ItemTemplate>
                <DataTemplate>
                    <TextBlock
                        Text="{Binding Text}" />
                </DataTemplate>
            </ComboBox.ItemTemplate>
        </ComboBox>
    </Grid>
</UserControl>

using System.Collections.Generic;

namespace Application1
{
    partial class MainPage
    {
        public MainPage()
        {
            InitializeComponent();
            this.DataContext = new MainViewModel();
        }
    }

    public class MyItem
    {
        public string Text { get; set; }
        public int Id { get; set; }
    }

    public class MainViewModel
    {
        public List<MyItem> Items { get; set; }

        public MainViewModel()
        {
            this.Items = new List<MyItem>();
            this.Items.Add(new MyItem { Text = "Item 1", Id = 1 });
            this.Items.Add(new MyItem { Text = "Item 2", Id = 2 });
        }
    }
}
1 голос
/ 18 ноября 2011

Вам не нужно ItemTemplate, то, что вам нужно, будет выглядеть так:

combobox.add(new ListItem("string", "index"); 
...