0

リストをメンバーとして持つ派生パネルがあります。xamlからリストにバインドする方法は?

class mypanel : Panel
{
    IList<int> mylist;
    ...
}

編集:

public static DependencyProperty myListProperty;
myListProperty= DependencyProperty.RegisterAttached("ListSource", typeof(IList<int>), typeof(mypanel));

            var b = new Binding("ListSource") { Source = myList, Mode = BindingMode.TwoWay };
            SetBinding(LayerSourceProperty, b);

解決策:次のことがうまくいきました..

public static DependencyProperty myListProperty=
            DependencyProperty.Register("ListSource", typeof(IList<int>), typeof(mypanel), new FrameworkPropertyMetadata(mylistchanged));


private static void LayerSourceChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
    var obj = (mypanel) d;
    .......
}
4

2 に答える 2

1

派生した Panel でプロパティを宣言する代わりに、mylist通常、派生した Panel を のItemsPanelTemplateに配置しItemsControlます。

<ItemsControl ItemsSource="{Binding DataItems}">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <local:MyPanel/>
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
</ItemsControl>
于 2013-03-04T08:18:04.447 に答える
0

Nicolas が言ったように、完全なデータ バインディング機能を許可するのは依存関係プロパティのみです。

于 2013-03-04T07:59:10.583 に答える