【问题标题】:[WPF]; Expanded event For TreeView in Caliburn.Micro[WPF]; Caliburn.Micro 中 TreeView 的扩展事件
【发布时间】:2017-07-22 02:34:13
【问题描述】:

treeview 元素上的“TreeViewItem.Expanded”事件,代码如下:

<TreeView ItemsSource="{Binding Nodes}"
         [Event TreeViewItem.Expanded]=[Action Expanded($this)];
         [Event TreeViewItem.Collapsed]=[Action Collapsed($dataContext)]">
<TreeView.ItemTemplate>
     <HierarchicalDataTemplate ItemsSource="{Binding Nodes}">
      ...
     </HierarchicalDataTemplate>
 </TreeView.ItemTemplate></TreeView> 

它不工作。

这是我的视图模型

public class MyViewModel{
.......
public void Expanded(Nodes node)
{
..........
}
}

谢谢
拉格瓦

【问题讨论】:

  • 你能详细说明你的要求吗??

标签: wpf mvvm caliburn.micro


【解决方案1】:

首先,您在前 3 行中遗漏了最重要代码的最大部分...

您向我们展示的代码希望是一个错字,因为它肯定是 XAML 错误。 C.M. 需要附加属性 Message.Attach。查看您要捕获的事件。请记住,这些方法的签名需要准确,否则 CM 不会在您的视图模型中找到它们。

<TreeView ItemsSource="{Binding Nodes}"
         Message.Attach="[Event TreeViewItem.Expanded]=[Action Expanded($this)];
         [Event TreeViewItem.Collapsed]=[Action Collapsed($dataContext)]">
<TreeView.ItemTemplate>
     <HierarchicalDataTemplate ItemsSource="{Binding Nodes}">
      ...
     </HierarchicalDataTemplate>
 </TreeView.ItemTemplate></TreeView> 

我的建议是首先在视图的代码隐藏中创建这些方法,方法是在属性窗口中双击该事件。然后在您的视图模型中复制该方法,您可以省略某些内容,但要使其正常工作,必须按照我的指示进行连接。

摩根。

【讨论】:

    【解决方案2】:

    如果您的要求是在视图模型中获取 IsExpanded 项,那么您可以将 TreeViewItem 的 IsExpanded 绑定到视图模型中的属性。

    <Style TargetType="{x:Type TreeViewItem}">
         <Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
         <Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}"/>
    </Style>
    

    ViewModel 代码:

    public class ViewModel
    {
    
        private bool isExpanded;
        public bool IsExpanded
        {
            get
            {
                return isExpanded;
            }
            set
            {
                isExpanded = value;
                MessageBox.Show("IsExpanded changed");
            }
        }
    }
    

    【讨论】:

    • 我在问 event 在 caliburn.micro 中动态添加数据
    猜你喜欢
    • 1970-01-01
    • 2013-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多