在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
是包含类型为Collection<State>
Public Class Country
{
Public Collection<State> States;
Public string Name{get;set;}
}
Public Class State
{
Public string Name{get;set;}
}
List<Country> countries = DAL.GetCountries();
ToolboxCategories.ItemSource = countries;
注意: 我看到手风琴标题显示每个手风琴标题中的国家名称,但是Listbox不是数据绑定状态。
答案 0 :(得分:0)
请将各州作为完整财产,这将有效。
public class Country
{
public Collection<State> States { get; set; }
public string Name { get; set; }
}
因为当你在内部设置Binding时,它会查找对象的get_Property方法,而你没有将state作为属性,这就是它没有显示的原因。我希望这可以帮助你摆脱这个问题。
干杯! 维诺德
答案 1 :(得分:0)
在处理Silverlight中作为数据绑定控件的数据源的类时。您有时需要使用以下代码进行数据绑定
ItemsSource="{Binding States,BindsDirectlyToSource=True}"