繁体   English   中英

Resharper突出显示了在数据上下文数据模板中找不到的属性

[英]Resharper highlights the properties not found in data context data template

我这里有一个小问题。 我在xaml的顶部声明了我的datatemplate,并在列表框itemtemplate中将其链接。 XAML

    <DataTemplate x:Key="listTemplate">

            <!--In case we need a click add button -->
            <DockPanel  HorizontalAlignment="Left" Height="92" LastChildFill="False" Margin="17,10,0,0" VerticalAlignment="Top" Width="615" Background="Green" >
                <Border BorderBrush="#FF000000" BorderThickness="1,1,1,1" CornerRadius="8,8,8,8" Margin="10,0,614,475"/>
                <TextBlock Margin="10,42,10,29" Width="70"> Приміщення</TextBlock>
                <TextBlock Margin="10,42,10,29" Width="75"> №</TextBlock>
                <Separator Style="{StaticResource {x:Static ToolBar.SeparatorStyleKey}}" />
                <TextBlock Margin="10,42,10,29" Width="91"> Гамма</TextBlock>
                <TextBlock Margin="10,42,10,29" Width="91" Text="{Binding MonitorGammaCh}"></TextBlock>
                <Separator Style="{StaticResource {x:Static ToolBar.SeparatorStyleKey}}" />
                <TextBlock Margin="10,42,10,29" Width="91"> Нейтрон</TextBlock>
                <TextBlock Margin="10,42,10,29" Width="72" Text="{Binding MonitorNeutronCh}"></TextBlock>

                <Separator Style="{StaticResource {x:Static ToolBar.SeparatorStyleKey}}" />
            </DockPanel>
            <!--</StackPanel>-->
        </DataTemplate>

<TabItem x:Name="MonitorsTab" Background="#617891" >
                <TabItem.Header>
                    <Image Width="100" Height="100" Source="../Resources/radioactive 256X256.png" />
                </TabItem.Header>
                <ListBox x:Name="MonitorsList" ItemTemplate="{StaticResource listTemplate}">

                </ListBox>               
            </TabItem>

在我后面的代码中

 MonitorsTab.DataContext = mainWindowViewModel.MonitorsTabViewModel;


        MonitorsViewModels = new ObservableCollection<MonitorViewModel>
        {
            new MonitorViewModel { MonitorGammaCh = "gamma1", MonitorNeutronCh = "neutron2" } ,
            new MonitorViewModel { MonitorGammaCh = "gamma1", MonitorNeutronCh = "neutron2" }, 
            //new MonitorViewModel { MonitorGammaCh = "gamma1", MonitorNeutronCh = "neutron2"}

        };
        MonitorsList.ItemsSource = MonitorsViewModels;

我得到的结果就是这个。 看不到gamma1和中子2文本 在此处输入图片说明

我想知道为什么Resharper找不到上下文。

ReSharper不会从背后的代码中推断出DataContext。 您需要像这样在XAML中使用d:DataContext属性显式设置设计时DataContext:

<Window x:Class="WpfApplication1.MainWindowView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:wpfApplication1="clr-namespace:WpfApplication1"
    mc:Ignorable="d"
    d:DataContext="{d:DesignInstance wpfApplication1:MainWindowViewModel}">
</Window>

设置好之后,ReSharper将解析所有与DataContext相关的符号,并将为您提供IntelliSense,导航和其他功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM