ObservableCollectionにバインドされたItemsSourceプロパティを持つItemsCountrolがあります。このタイプを表示するusercontrol(TeamUserControl)があります。私はitemsSourceコレクション内の各customtype項目のこのusercontrolをロードするデータ型を作成しました。この時点で、私がTeamUserControl内で作成するBindingステートメントは、パス{Binding Path = TeamOwner}で直接Teamプロパティを参照して作業することができます。 usercontrolが表すItemsSource項目への参照をバインドする方法はありますか?たとえば、TeamUserControlでは、Teamタイプの依存関係プロパティを作成し、それをItemsSourceのアイテムのインスタンスにバインドします。 のObservableCollectionチーム:この例では ItemsSourceコレクションのアイテムにDataTemplateコントロールのプロパティバインディングを設定しますか?
<ItemsControl Name="ItemCtrl" Grid.Row="0" ItemsSource="{Binding Path=League.Teams}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<mycontrols:TeamUserControl AttachedTeam="{Binding ???}" TeamOwnerName="{Binding Path=TeamOwner}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
は、ウィンドウには、プロパティを持つクラス「リーグ」を表しています。 TeamOwnerというプロパティを持つ "Team"クラスがあります。 TeamUserControlには、Team型のAttachedTeamとString型のTeamOwnerNameの2つの依存関係プロパティがあります。
これらのユーザーコントロールのそれぞれにチームのインスタンスがあることを示すチームオーナープロパティリファレンスが含まれています。私はそれをどのように参照するか分かりません。
これは私がそれがうまくいかなければならないと思った方法です。しかし、私は、TeamUserControlのソースタイプとターゲットタイプのTeamの間で変換しようとしているところで、バインディングエラーを取得します。そのエラーは、ItemsSourceがOCであるため、完全に混乱しています。私がItemsControl.ItemsTemplateを定義しなければ、私はちょうどクラス名 "Team"を取得します。私は各クラスのTeamオブジェクトについてこのTeamUserControl usercontrolを使用するように指示しようとしています。 –
mminneman
ええ、あなたは正しいです。私のTeamUserControlでは、デバッグ用にDataContextをDataContext = "{Binding RelativeSource = {RelativeSource Mode = Self}}"に設定していたことが判明しました。私はそれを削除し、すべてが良いです。ありがとう。 – mminneman
@mminneman por favor! – stukselbax