2010-11-30 1 views
0

처음에 나는 인사하고 싶습니다. 그래서 ... 안녕하세요. 중첩 된 객체 구조를 만들어야합니다. 나는 지금은 중첩 된 구조를 사용하고 싶습니다이중첩 객체를 생성하는 방법

<navigation:Page x:Class="ItemTemplateExample.ContentItem" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     mc:Ignorable="d" 
     xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation" 
     d:DesignWidth="200" d:DesignHeight="20" 
     Title="ContentItem Page"> 
<Grid x:Name="LayoutRoot"> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="50"/> 
     <ColumnDefinition Width="*"/> 
    </Grid.ColumnDefinitions> 
    <Button x:Name="button1" /> 
    <ContentControl Grid.Column="1" x:Name="content1" /> 
</Grid> 

같은 객체 (XAML 페이지)있어. 예 :

<local:ContentItem ButtonText="level 1"> 
    <local:ContentItem ButtonText="level 2" /> 
    <local:ContentItem ButtonText="level 2" /> 
    <local:ContentItem ButtonText="level 2"> 
      <local:ContentItem ButtonText="level 3" />  
    </local:ContentItem> 
</local:ContentItem> 

여기서 ButtonText는 알려진 값 (중첩 된 개체를 추가 할 때 설정 됨)이며 각 개체의 내용은 같은 유형의 개체입니다. 어떻게 시작해야할지 모르겠습니다. 제발, 몇 가지 힌트를주세요. 고맙습니다.

답변

0

당신은

+0

Finnaly, 나는 내 자신의 templete와 함께 treeview를 사용했습니다. 내가 무엇을 검색해야하는지 안다면 너무 쉬웠다. – Jerry

0

두 가지 가능한 솔루션

Seee here WPF

에 HierarchicalDataTemplate을보고 싶다 : 사용자 제어 또는 데이터 템플릿을. 사용자 정의 컨트롤은 현재 위치를 파악하는 데 가장 간단하지만 데이터 템플릿은 장기적으로 더 나은 솔루션이 될 수 있습니다.

프로젝트에 사용자 정의 컨트롤을 추가하는 것은 간단합니다. Visual Studio에는이를위한 템플릿이 있습니다. 여기에 표시된 Grid과 동일한 내용을 ContentItem 사용자 정의 컨트롤의 Xaml에 넣을 수 있습니다. 그런 다음 사용자 정의 컨트롤의 코드 숨김 뒤에 ButtonText이라는 속성을 정의해야합니다. 이 작업을 수행해야합니다 :

public string ButtonText 
{ 
    get { return button1.Content.ToString(); } 
    set { button1.Content = value; } 
} 

이렇게하면 Xaml을 사용하는 것처럼 보이게 할 수 있습니다.

데이터 템플릿이 더 좋을 수도 있다는 이유는 Xaml에서 중첩 된 구조를 하드 코딩하고 싶지 않기 때문입니다. 데이터를 UI로 굽기보다는 데이터에서 이러한 구조를 생성 할 수있는 것이 좋습니다. 그러나 구조가 완전히 수정 된 경우 요청한 접근 방식이 괜찮을 수도 있습니다.

+0

고맙습니다.하지만 뭔가 다른 것을 기대했습니다. – Jerry

+0

당신은 무엇을 기대 했습니까? 어떤 방식으로 당신은 그것을 다르게하고 싶습니까? 도움이되고 싶지만 귀하의 의견은 구체적이지 않습니다. –