2

나는 ChildWindow에서 실버 아코디언 제어를하고 난 지금에게 다음과 같은 방법데이터는 실버 아코디언 컨트롤에 바인딩

<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) 
{} 

이 방법의 방법이 주 페이지에서 호출되어 gp 값을 전달합니다.

그룹은 공개 속성 및 관찰 가능한 모음이있는 클래스입니다. 예 :

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;} 
    -------- 
    ------- 
} 

이제 머리글 템플릿의 _headertext (헤더 템플릿의 TextBlock)와 성 (lastName)의 _contenttext (콘텐츠 템플릿의 TextBlock)을 바인딩해야합니다.

이 작업을 도와주세요. 도움이 필요합니다.

감사 라니

+0

오신 것을 환영합니다 SO, 자주 묻는 질문과 오른쪽에 요약있는 간단한 마크 다운 문서를 (읽어 보시기 바랍니다하기 질문을 편집 할 때 페이지의 내용). – AnthonyWJones

+0

'Setter'유형은 직접 내용을 지원하지 않습니다. 여기 해결책은 작동하지 않습니다. –

답변

1

이유는 바로 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> 
1

먼저 TargetType은 AccordionItem을 가리키며 Accordion 요소 자체에서 스타일을 사용하려고합니다. 이것은 결코 작동하지 않을 것입니다. 이 기능을 사용하려면 아코디언 자체와 아코디언 스타일에서 참조하는 AccordionItem에 대해 각각 두 가지 스타일을 만들어야합니다. 그런 다음

<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>