1

私はこのように定義されたクラスを持っています:

    public class CustomClass
    {
        string Name;
        int Age;
        Usercontrol usercontrol;
    }

Usercontrol は、WrapPanel に挿入するビジュアル要素です。

CustomClass は、静的な ObservableCollection に編成されます。

    public static class CollectionClass
    {
        public static ObservableCollection<CustomClass> MyCollection = new ObservableCollection<CustomClass>();
    }

コレクション内の CustomClass の usercontrol プロパティをバインドして、WrapPanel で視覚化することを検討しているため、ビジュアル要素をコレクション内の要素と同じ順序で表示します。

現在、WrapPanel をコードで手動で設定していますが、データバインディングを使用してすばやく簡単に行う方法が必要であると考えました。私はこのように定義されたItemsControlでそれをやろうとしています:

    <ItemsControl Name="SensorMenuWrap"  ItemsSource="{Binding }">
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <WrapPanel/>
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
    </ItemsControl>

しかし、魔法を起こす方法がわかりません。

編集:

そのように実装されたChrisOによって提案されたソリューションを試しました:

1 - コレクションをプロパティにしました

2 - UserControl をプロパティにしました

3 - コードから DataContex を設定します。

SensorMenuWrap.Datacontext = CollectionClass.MyCollection

4 - バインディング:

         <ItemsControl Name="SensorMenuWrap"  ItemsSource="{Binding }">
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <WrapPanel/>
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <ContentControl Content="{Binding usercontrol}" />
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>

これで、コレクションの最初の要素を視覚化できます。最初の要素が変更された場合、新しい最初の要素を視覚化します。コレクション全体を視覚化するにはどうすればよいですか?

4

1 に答える 1