使用Silverlight accordion控件进行数据绑定
我在ChildWindow中有Silverlight手风琴控件,我通过以下方式对其进行了自定义使用Silverlight accordion控件进行数据绑定,silverlight,data-binding,silverlight-3.0,accordion,silverlight-toolkit,Silverlight,Data Binding,Silverlight 3.0,Accordion,Silverlight Toolkit,我在ChildWindow中有Silverlight手风琴控件,我通过以下方式对其进行了自定义 <Style x:Key=itemStyle TargetType=AccordionItem> <Setter Porperty=HeaderTemplate> <DataTemplate> <TextBlock x:Name=_headertext/> </DataTemplate> </Sett
<Style x:Key=itemStyle TargetType=AccordionItem>
<Setter Porperty=HeaderTemplate>
<DataTemplate>
<TextBlock x:Name=_headertext/>
</DataTemplate>
</Setter>
</Style>
<Accordion Style"{StaticResource itemStyle}">
<Accordion.ContentTemplate>
<DataTemplate>
<StackPanel>
<CheckBox/>
<TextBlock x:name=_contenttext/>
</DataTemplate>
<Accordion.ContentTemplate>
</Accordion>
现在我在Chilwindow.Xaml中有了一个方法
public void LoadItems(ObservableColection<Groups> gp)
{}
public void LoadItems(可观察选择gp)
{}
此方法从主页面调用,并传递gp值
Groups是一个具有公共属性和可观察集合的类
public class Groups
{
public string FirstName{get, set;}
public ObservableCollection<Details> details {get, set;}
public Groups()
{
this.details=new ObservableCollection<Details>();
}
}
My Details Class is as follows
public class Details
{
public int id {get; set;}
public string LastName{get; set;}
--------
-------
}
公共类组
{
公共字符串名{get,set;}
公共ObservableCollection详细信息{get,set;}
公共团体()
{
this.details=新的ObservableCollection();
}
}
我的课程详情如下
公开课详情
{
公共int id{get;set;}
公共字符串LastName{get;set;}
--------
-------
}
现在我必须用FirstName绑定_headertext(标题模板中的TextBlock),用LastName绑定_contenttext(内容模板中的TextBlock)
请帮我做这件事,我需要你的帮助
谢谢
Rani为什么不直接在XAML中使用数据绑定?您不需要在代码中执行此操作
<Style x:Key=itemStyle TargetType=AccordionItem>
<Setter Porperty=HeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding FirstName}"/>
</DataTemplate>
</Setter>
</Style>
<Accordion Style"{StaticResource itemStyle}">
<Accordion.ContentTemplate>
<DataTemplate>
<StackPanel>
<CheckBox/>
<TextBlock Text="{Binding LastName}"/>
</DataTemplate>
<Accordion.ContentTemplate>
</Accordion>
首先,TargetType指向AccordionItem,您试图在Accordion元素本身上使用样式。这是行不通的。为了实现这一点,您需要创建两种样式,一种用于手风琴本身,另一种用于手风琴样式中引用的手风琴项目
<Style x:Key="itemStyle" TargetType="layoutToolkit:AccordionItem">
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock Text="{Binding Header}"/>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="accordionStyle" TargetType="layoutToolkit:Accordion">
<Setter Property="ItemContainerStyle" Value="{StaticResource itemStyle}" />
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock Text="{Binding Content}"/>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
然后定义手风琴控件,如下所示:
<layoutToolkit:Accordion Height="Auto"
Name="accordion1"
ExpandDirection="Right"
SelectionMode="One"
ItemsSource="{Binding}"
Style="{StaticResource accordionStyle}">
</layoutToolkit:Accordion>
欢迎使用SO,请花几分钟时间阅读常见问题解答和简单的降价文档(编辑问题时,其摘要位于页面右侧)。类型“Setter”不支持直接内容。这里的解决方案不起作用。