Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 自动连线ViewModel(Prism)的附加代码完成_C#_Xaml_Prism_Rider - Fatal编程技术网

C# 自动连线ViewModel(Prism)的附加代码完成

C# 自动连线ViewModel(Prism)的附加代码完成,c#,xaml,prism,rider,C#,Xaml,Prism,Rider,我正在做一个使用Prism作为客户端软件的项目。我有一个UserControlXAML文件,看起来像这样: <UserControl x:Class="UserModule.Frontend.UserListView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://sche

我正在做一个使用Prism作为客户端软件的项目。我有一个
UserControl
XAML文件,看起来像这样:

<UserControl x:Class="UserModule.Frontend.UserListView"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:prism="http://prismlibrary.com/"
             prism:ViewModelLocator.AutoWireViewModel="True"
             mc:Ignorable="d" 
             d:DesignHeight="450" d:DesignWidth="800">
  <Grid>
    <ListView ItemsSource="{Binding Users}"/>
  </Grid>
</UserControl>

实际的XAML有点长,但我的问题是:

Rider在列表视图的
ItemsSource
属性的绑定处向我显示一条警告。我有一个ViewModel,Prism注入正确,我可以看到列表已经填充。但是,在设计时,如果我不亲自检查,我就看不出该属性是否存在。同时,我在ViewModel类中得到一个警告,
用户的公共getter
可能会被删除


是否有一种方法可以完成代码以识别带Prism的自动连线ViewModel?

您需要为视图定义
d:DataContext
。如果我定义了
DataContext
属性,那么就投票支持…

自动连接不是多余的吗?是和否-是,因为你提到了类型,尽管它是自动解析的,而不是,因为通过指定
d:DataContext
你没有设置
DataContext
(注意
d:
)好的,为了完成解决方案:我添加了一个名为
IGroupListViewModel
的接口,我的视图模型类实现了该接口。我还添加了一个名为
GroupListViewModelStub
的类,该类实现该接口时没有任何必要的logik。XAML文件通过
d:DataContext
引用存根,但prism在运行时将实际视图模型传递给它。您可以看看这个答案-使用
DesignTimeFactory
可以跳过附加接口。同时,我发现在
d:DataContext
中指定接口就足够了,这意味着我只需要创建接口和具体实现。