나는 텍스트 블록에서 treeview의 선택된 항목을 표시하려고합니다. 이 여기에 내가 선택한 항목을 표시하기 위해 노력하고있어 내 TextBlock의 내 XAML 코드첨부 된 종속성 속성에서 값을 속성에 설정하는 방법은 무엇입니까?
<Style TargetType="{x:Type TreeViewItem}">
<Style.Triggers>
<Trigger Property="IsSelected" Value="true">
<Setter Property="vm:HLViewModel.SelectedNode" Value="{Binding ElementName="tree",Path=SelectedItem}"/>
</Trigger>
</Style.Triggers>
</Style>
입니다
내가 트 리뷰의에 isSelected 속성이 트리거 될 때 설정됩니다 부착하는 DependencyProperty를 만들었습니다<TextBlock Text="{Binding myText}"/>
. 어떻게 콜백 함수에서 myText의 값을 설정할 수 있습니까?
public class HLViewModel : DependencyObject
{
public myText{get;set;}
public static object GetSelectedNode(DependencyObject obj)
{
return (object)obj.GetValue(SelectedNodeProperty);
}
public static void SetSelectedNode(DependencyObject obj, object value)
{
obj.SetValue(SelectedNodeProperty, value);
}
public static readonly DependencyProperty SelectedNodeProperty =
DependencyProperty.RegisterAttached("SelectedNode", typeof(object), typeof(HLViewModel), new PropertyMetadata("def",SelectedNode_changed));
private static void SelectedNode_changed(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
// wanna set of myText property value here
}
'myText'는 인스턴스 속성입니다. 어디서나'HLViewModel'의 인스턴스를 가지고 있습니까? 어디 있니? 나는 당신이 하나를 창조하고있는 어떤 곳도 보지 못한다. "무엇을하고 싶니?" –
TreeViewItem의 연결된 속성을 설정하면 연결된 속성이 정의 된 클래스의 인스턴스가 생성됩니다. 그건 사실이 아니야. TreeViewItem에 해당 속성을 추가하고 있습니다. –
@EdPlunkett이 코드는 테스트 용입니다. 내 목표는 treeview의 selecteditem을 얻는 것입니다. TextBlock은 treeview에서 선택된 것을 보여주기 위해 필요합니다. 그것을 시험을 위해서만 반복합니다. 우리는 HLViewModel 클래스의 인스턴스를 알지 못하기 때문에 정적 함수 내에서 myText 값을 설정할 수 없습니다. d는 HLViewModel가 null을 제공하므로. d는 TreeViewItem에서 가져옵니다. –