나중에 TreeView
에 추가 할 TreeViewitems
을 만드는 데이 코드가 있습니다. 이것은 모두 프로그래밍 방식으로 수행됩니다.프로그래밍 방식으로 이미지가있는 TreeviewItem
TreeViewItem tvi = new TreeViewItem {
Header = ni.name,
Uid = itemName,
Background = color
};
I 싶어 프로그래밍 TreeViewItems
에 대한 아이콘으로 이미지를 추가 할 수 있습니다. 나는 이것을하고 있지만 TreeView
에서 볼 수있는 것은 System.Windows.Controls.StackPanel
이라는 항목이 이상하다. 또한 표시된 이미지가 없습니다. 내 코드에서 이것을 사용하고 있습니다. 도와주세요 :
TreeViewItem tvi = new TreeViewItem
{
Header = new System.Windows.Controls.StackPanel
{
Children =
{
new System.Windows.Controls.Image{Source = b},
new System.Windows.Controls.TextBlock
{
Text = ni.name
}
}
},
Uid = itemName,
Background = color
};
나는 또한 XAML based
접근 방식을 시도했습니다. 대신 이전처럼 TVI를 추가
<TreeView ItemsSource="{Binding}" Grid.Row="1" Grid.Column="0" Name="TreeView1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" TreeViewItem.Selected="TreeViewItem_OnItemSelected">
<TreeView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path= iName}" Margin="5,0" />
</StackPanel>
</DataTemplate>
</TreeView.ItemTemplate>
</TreeView>
, 내가 이렇게 : XAML
아래처럼 내 XAML based
접근 방식은 보이는
TreeItem
클래스는 다음과 같습니다
// node.Items.Add(tvi); //for non-xaml approach
var ti = new TreeItem { iName = ni.name};
node.Items.Add(ti);
:
namespace DeveloperTool
{
public class TreeItem
{
public string iName
{
get; set;
}
}
}
도에 대한 내가 사용하는이 방법은 DeveloperTool
이라는 TreeViewItems
입니다. TreeItem
대신 실제 이름을 바인딩합니다. 간단히하기 위해 나는 단지 TextBlock
먼저 시도했다 (이미지 제외). 누군가 내가 여기서 잘못하고있는 것을 복습 해 주실 수 있습니까? 두 가지 접근 방식 모두 같은 종류의 상황을 초래합니다.
그래서 나는 itemtemplate을 제거하고 대신 리소스에서 사용해야합니까? –
예, 게시 된 Xaml은 HeaderTemplate 속성을 설정하며 사용자가 게시 한 코드와 Xaml을 기반으로합니다. –
감사합니다. 그 일을했습니다. 제 일을 만들기 위해 더 많은 질문이 있지만, 그것에 관한 또 다른 질문을 게시하는 것이 좋습니다. –