0

Silverlightでは、データバインディングはcollection<*>許可されていますか?私は以下をしましたが何も起こらないので

<SilverlightToolkit:Accordion Name="ToolboxCategories" SelectionMode="ZeroOrMore">
                <SilverlightToolkit:Accordion.ItemTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding Name}"></TextBlock>
                    </DataTemplate>
                </SilverlightToolkit:Accordion.ItemTemplate>
                <SilverlightToolkit:Accordion.ContentTemplate>
                    <DataTemplate>
                        <ListBox x:Name="CategoryControls" ItemsSource="{Binding States}" BorderThickness="0">
                            <ListBox.ItemTemplate>
                                <DataTemplate>
                                    <Canvas>
                                        <TextBlock Text="{Binding Name}"></TextBlock>
                                    </Canvas>
                                </DataTemplate>
                            </ListBox.ItemTemplate>
                        </ListBox>
                    </DataTemplate>
                </SilverlightToolkit:Accordion.ContentTemplate>
            </SilverlightToolkit:Accordion>

CountryタイプのStatesプロパティを含むクラスはどこにありますかCollection<State>

Public Class Country
{
  Public Collection<State> States;

  Public string Name{get;set;}
}

Public Class State
{
  Public string Name{get;set;}
}

Xaml.cs

List<Country> countries = DAL.GetCountries();

ToolboxCategories.ItemSource = countries;

注: アコーディオンヘッダーには各アコーディオンヘッダーに国名が表示されていますが、リストボックスは州とデータバインドされていません。

4

2 に答える 2

0

州を完全な財産として作成してください。これで機能します。

 public class Country
{
    public Collection<State> States { get; set; }

    public string Name { get; set; }
}

Bindingを内部的に設定すると、オブジェクトのget_Propertyメソッドが検索され、stateをプロパティとして作成しなかったため、表示されません。これがこの問題を取り除くのに役立つことを願っています。

乾杯!ヴィノド

于 2012-08-08T05:18:49.210 に答える
0

Silverlightでデータバインドコントロールのデータソースとして機能するクラスを処理する場合。時々データバインドするには、以下のコードを使用することが不可欠です

ItemsSource="{Binding States,BindsDirectlyToSource=True}"

于 2012-08-08T09:35:42.743 に答える