MVVM树视图使用转换器选择项目

时间:2014-11-07 07:09:42

标签: c# wpf xaml mvvm treeview

我是MVVM的初学者。我想将选定的树视图项绑定到文本块。我找到了一个解决方案here。所以我在我的项目中实现了相同的......:

 <TextBox Text="{Binding SelectedItem, Converter={StaticResource GetTextFromItemConverter}, ElementName=tvMain, Mode=OneWay}"

还在我的viewmodel中创建了GetTextFromItemConverter类(与解决方案中的相同)。 但在xaml我得到错误说

  

无法解析资源GetTextFromItemConverter。

如何解决此问题??

2 个答案:

答案 0 :(得分:1)

我认为类GetTextFromItemConverter是在名为TestDemo的名称空间中定义的。首先,您必须在XAML中创建该类的某个实例作为某些资源。例如,您可以将其添加为Window.Resources的某些资源,我们需要导入该类的命名空间,以便我们可以创建该类的实例,如下所示:

<Window ...
        xmlns:local="clr-namespace:TestDemo">
   <Window.Resources>
     <local:GetTextFromItemConverter x:Key="textConverter"/>
   </Window.Resources>
   <!-- ... -->
     <TextBox Text="{Binding SelectedItem, 
                     Converter={StaticResource textConverter},
                     ElementName=tvMain, Mode=OneWay}"/>
   <!-- ... -->
</Window>

请注意,添加的部分xmlns:local="clr-namespace:TestDemo"是导入TestDemo命名空间,别名为local前缀。 ...是占位符,表示您在窗口中拥有的内容(由设计人员自动生成)。

答案 1 :(得分:0)

检查您映射的视图模型是否被正确引用,如果是这样,它是否完美检查您使用的转换器的路径引用。

例如:

xmlns:converter="using your namespace path"-location转换器放在资源字典中。