-1
我試圖在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>
這是我的文本塊在那裏我試圖表現出所選項目
<TextBlock Text="{Binding myText}"/>
我創建的時候TreeView的IsSelected屬性被觸發,這將設置連接的DependencyProperty。如何在回調函數中設置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中選擇的內容。重複它只是爲了測試。我不能在靜態函數中設置myText值,因爲我們不知道HLViewModel類的實例。 d作爲HLViewModel給出null。 d來自TreeViewItem。 –