バインディング....SilverlightのリストボックスItemTemplateにユーザーコントロールは、ここに私の脳を傷つけ
私は、次のListBox
<ListBox Height="221" HorizontalAlignment="Left" Name="listBox1" VerticalAlignment="Top" Width="Auto" ItemsSource="{Binding MediaItems}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid ShowGridLines="True">
<my:MediaItemControl CurrentItem="{Binding}" />
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ListBox>
がリストボックスは、オブジェクトののObservableCollectionにバインドされています。
このように、このListBoxにはユーザーコントロールが含まれています。ユーザーコントロール内には、以下の依存関係プロパティ情報があります。私がやろうとしています何
public static readonly DependencyProperty CurrentItemProperty = DependencyProperty.Register("CurrentItem", typeof(TypedMediaItem), typeof(MediaItemControl), new PropertyMetadata(null));
public TypedMediaItem CurrentItem
{
get { return (TypedMediaItem)GetValue(MediaItemControl.CurrentItemProperty); }
set {
SetValue(MediaItemControl.CurrentItemProperty, value);
}
}
は私のユーザーコントロールに、リストボックスののItemsSource内の現在のアイテムを渡すことです。しかし、上記のメソッドを使用すると、依存関係プロパティのセッターが呼び出されることはありません。
私は間違っていますか?
'MediaItems'は' ObservableCollection 'です。あなたは' IemsSource'バインディングがコレクションに正しくバインドされていると確信しています。これは正しいです?また、依存関係プロパティのセッターが呼び出されないことをどのように知っていますか?(具体的に) –
はいMediaItemsはObservableCollectionであり、IemsSourceバインディングがコレクションに正しくバインドされていると確信しています。ラベルは、TypedMediaItemオブジェクトのメンバーに直接バインドできます。私は決してそれではないプロパティの設定メソッドにブレークポイントを設定するので、セッターは決して呼び出されないことを知っています。 –