0

DynamicResource を ListView の ItemsSource として使用しようとすると、アプリケーションで次のエラーが出力されます。

ウィンドウはツリーのルートでなければなりません。Window を Visual の子として追加できません。

ItemsSource を削除してコードをそのままにしておくと、エラーは発生せず、空の ListView が表示されます。

私の Window.XAML にある私の ListView は次のとおりです。

<ListView Grid.Column="1" Grid.Row="8" Grid.RowSpan="4" ItemsSource="{DynamicResource tasksResponsibilitiesCollection}">
                        <ListView.View>
                            <GridView AllowsColumnReorder="True">
                                <GridViewColumn DisplayMemberBinding="{Binding tasksResponsibilitiesName}" Header="Tasks/Responsibility" Width="150" />
                                <GridViewColumn Header="Member Responsible" Width="120" />
                                <GridViewColumn Header="Qualifications" Width="110" />
                            </GridView>
                        </ListView.View>
                    </ListView>

ItemsSource は、分離コードで定義された ObservableCollection です。ListView を作成するためのガイドとして、MSDN の例 (http://msdn.microsoft.com/en-us/library/ms747048.aspx) を使用しています。

ObservableCollection を ListView に入札するにはどうすればよいですか? Window.XAML 内のどこかにリソースを定義する必要がありますか?

私がカバーしていないものがあれば、私に知らせてください。

よろしくお願いします。

マット

4

1 に答える 1

1

ObservableCollectionウィンドウのコード ビハインドでプロパティとして定義されている場合は、次ItemsSourceのように、データ バインディングを使用して set を設定できます。

<ListView Grid.Column="1" Grid.Row="8" Grid.RowSpan="4" ItemsSource="{Binding Path=tasksResponsibilitiesCollection, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}">
    <ListView.View>
        <GridView AllowsColumnReorder="True">
            <GridViewColumn DisplayMemberBinding="{Binding tasksResponsibilitiesName}" Header="Tasks/Responsibility" Width="150" />
            <GridViewColumn Header="Member Responsible" Width="120" />
            <GridViewColumn Header="Qualifications" Width="110" />
        </GridView>
    </ListView.View>
</ListView>

tasksResponsibilitiesCollectionウィンドウのコード ビハインドのパブリック プロパティである必要があることに注意してください。

于 2011-02-08T13:10:31.827 に答える