2

この質問を投稿したことは理解していますが、最後の質問の回答を受け入れて記事を読み進めたところ、探していた回答ではないことに気付きました。サンプルコードを添えて再度投稿しました。

コレクションからのデータで Grid (DataGrid ではなく) を埋めたいと思います。ここに私が持っているものがありますが、うまくいきません。コレクションを削除して DataContext を単一のオブジェクトに設定すると、機能しますが、コレクションとしては機能しません。

XAML

Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
        <StackPanel>
            <TextBlock Text="{Binding Path=StudentName}" />
        </StackPanel>
</Grid>

MainPage.xaml.cs

public MainPage()
    {
        InitializeComponent();

        ObservableCollection<Student> ob = new ObservableCollection<Student>();

        ob.Add(new Student()
        {
            StudentName = "James Jeffery"
        });

        ob.Add(new Student()
        {
            StudentName = "Sian Ellis"
        });



        this.DataContext = ob;

        // Sample code to localize the ApplicationBar
        //BuildLocalizedApplicationBar();
    }

これは何時間も私を悩ませてきました。グリッドをコレクションで埋めることができないようです。Google のすべての例は、ListViews などを示しています。グリッドを塗りつぶしたいのですが、グリッドだけです。

これを達成する方法について何かアドバイスはありますか?

4

2 に答える 2

1

別の回答で述べたように、次のものが必要ですItemsControl

<Window x:Class="MiscSamples.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <ItemsControl ItemsSource="{Binding}">
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <UniformGrid IsItemsHost="True" Rows="3" Columns="3"/>
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <StackPanel>
                    <TextBox Text="{Binding Name}" Margin="2"/>
                </StackPanel>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</Window>

コードビハインド:

 public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            DataContext = new List<Student>
                {
                    new Student() {Name = "James Jeffery"},
                    new Student() {Name = "Sian Ellis"},
                    new Student() {Name = "James Jeffery 2"},
                    new Student() {Name = "Sian Ellis 2"},
                    new Student() {Name = "James Jeffery 3"},
                    new Student() {Name = "Sian Ellis 3"},
                };
        }
    }

出力:

ここに画像の説明を入力

于 2013-03-19T00:41:59.190 に答える
0

できません。グリッドはこれに対応していません。ItemsControl または ItemsControl の子孫を使用する必要があります。

このチュートリアルを試してください: http://www.galasoft.ch/mydotnet/articles/article-2007041201.aspx

于 2013-03-19T00:21:28.937 に答える