0

ListBoxWPFフォームを使用しています。文字列項目の一覧を横に表示したいのですが。私は自分のコントロールGridを保持するを持っています。ListBox

フォームを実行すると、カプセル化オブジェクトの名前が表示されます:その中の文字列オブジェクトの代わりにProjectName.Folder.Category 。

ViewModelLocator

public CategoryViewModel CategoryViewModel
{
    get
    {
        if (categoryviewModel == null)
        {
            categoryviewModel = new CategoryViewModel();
            categoryviewModel.ListData.Clear();
            categoryviewModel.ListData.Add(new Category { MyCategory = "new categroy1" });
            categoryviewModel.ListData.Add(new Category { MyCategory = "new categroy2" });
            categoryviewModel.ListData.Add(new Category { MyCategory = "new categroy3" });
            categoryviewModel.ListData.Add(new Category { MyCategory = "new categroy4" });
            categoryviewModel.ListData.Add(new Category { MyCategory = "new categroy5" });
            categoryviewModel.ListData.Add(new Category { MyCategory = "new categroy6" });
        }
        return categoryviewModel;
    }
}

Model

class Category
{
    public String MyCategory { get; set; }
}

MainPage.xaml

<Grid>
    <my:featureControl HorizontalAlignment="Left" 
                       x:Name="featureControl1" 
                       VerticalAlignment="Top" Height="332" 
                       Loaded="featureControl1_Loaded" />
</Grid>

Control.xaml

<UserControl x:Class="AmebaPrototype.UI.Longlist.CategoryControl"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         mc:Ignorable="d" 
         d:DesignHeight="300" d:DesignWidth="1280">
<Grid DataContext="{Binding Source={StaticResource viewModelLocator},Path=CategoryViewModel}">

    <ListBox Height="300" HorizontalAlignment="Left" Name="listBox1" VerticalAlignment="Top" Width="1280" ItemsSource="{Binding ListData}" >
        <ListBox.ItemsPanel>
            <ItemsPanelTemplate>
                <VirtualizingStackPanel Orientation="Horizontal"/>
            </ItemsPanelTemplate>
        </ListBox.ItemsPanel>        
    </ListBox>
</Grid>

4

2 に答える 2

3

あなたはあなたのに設定する必要がありDisplayMemberPathますListBox

于 2012-06-25T15:11:23.487 に答える
0

これでうまくいったようです。

<DataTemplate x:Key="ListBoxTemplate">
    <TextBlock x:Name="black"  Text="{Binding MyCategory}"/>
</DataTemplate>
于 2012-06-25T15:15:44.810 に答える