Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.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# 为什么visual studio在更改;ItemsSource=";{Binding Path=Ssss1}";当我试图改变时“;sss1“;至;计划;_C#_Silverlight_Xaml_Mvvm_Binding - Fatal编程技术网

C# 为什么visual studio在更改;ItemsSource=";{Binding Path=Ssss1}";当我试图改变时“;sss1“;至;计划;

C# 为什么visual studio在更改;ItemsSource=";{Binding Path=Ssss1}";当我试图改变时“;sss1“;至;计划;,c#,silverlight,xaml,mvvm,binding,C#,Silverlight,Xaml,Mvvm,Binding,我正在尝试开发一个silverlight应用程序,当我尝试将“sss1”更改为“Programs”(我的意思是当我尝试这样做时)时,当我更改“ItemsSource=“{Binding Path=ssssss1}”时,该应用程序会崩溃 ItemsSource=“{Binding 路径=程序}” 然后 它使Visual Studio崩溃 在解释中(我想做的是): 我是使用c#和xaml的silverlight应用程序的初学者。我试图做的是显示如下信息: SerialNumber FirstNam

我正在尝试开发一个silverlight应用程序,当我尝试将“sss1”更改为“Programs”(我的意思是当我尝试这样做时)时,当我更改“ItemsSource=“{Binding Path=ssssss1}”时,该应用程序会崩溃

ItemsSource=“{Binding 路径=程序}”

然后 它使Visual Studio崩溃

在解释中(我想做的是):

我是使用c#和xaml的silverlight应用程序的初学者。我试图做的是显示如下信息:

SerialNumber  FirstName LastName //These are headingand below is the data
s0             ss1       ss1L
s1             ss2       ss2L 
其中,
s0 ss1 ss1L
s1 ss2 ss2
L必须为列表

我的问题是:

它只显示标题,但不显示下面的数据,如下所示:但标题下不显示任何内容

我的代码如下:

我的项目名是DEV_CENTER和MainPage

<UserControl x:Class="DEV_CENTER.MainPage"
    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:vm="clr-namespace:DEV_CENTER"
             xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400">

    <UserControl.Resources>
        <vm:ProgramViewModel x:Key="ProgramViewModel"/>
    </UserControl.Resources>

    <Grid x:Name="LayoutRoot" Background="White">
        <data:DataGrid Grid.Row="0" x:Name="gridPrograms" AutoGenerateColumns="False" ItemsSource="{Binding Path=Programs }" IsReadOnly="True"  DataContext="{StaticResource ProgramViewModel}" >
            <data:DataGrid.Columns>
                <data:DataGridTextColumn Header="SerialNumber" Binding="{Binding Path=SerialNumber}" Width="2*"></data:DataGridTextColumn>
                <data:DataGridTextColumn Header="FirstName" Binding="{Binding Path=FirstName}" Width="2*"></data:DataGridTextColumn>
                <data:DataGridTextColumn Header="LastName" Binding="{Binding Path=LastName}" Width="3*"></data:DataGridTextColumn>
            </data:DataGrid.Columns> 
        </data:DataGrid>
    </Grid>
</UserControl>
这是我几乎全部的项目。你可以使用所有的代码进行测试。
Mvvm逻辑中是否有任何错误?或者其他错误?为什么会崩溃?

堆栈溢出:

    public ObservableCollection<Program> Programs 
    {
        get
        { 
            return Programs; // upper case p!  recursively calling itself!
        }
    ...
    }
这只是触发一个属性更改,它从来没有设置值

完整属性应如下所示:

    private ObservableCollection<Program> programs; // note lower case p!

    public ObservableCollection<Program> Programs // upper case p!
    {
        get
        { 
            return this.programs; // lower case p!
        }

        set
        {
            this.programs = value; // lower case p
            OnPropertyChanged("Programs");
        }        
    }
私有ObservableCollection程序;//注意小写的p!
公共可观测收集程序//大写p!
{
得到
{ 
返回this.programs;//小写字母p!
}
设置
{
this.programs=value;//小写字母p
OnPropertyChanged(“程序”);
}        
}

您是说visual studio本身崩溃了?还是您的程序崩溃了?如果您的程序崩溃了,请使用调试器,调试器应该正好停止在问题所在的位置。@JohnGardner当我编辑ItemsSource=“{Binding Path=ssssss1}”到ItemsSource=“{Binding Path=Programs}”时。(我认为VS正在崩溃,因为它试图显示xaml设计器,而堆栈溢出发生在xaml设计器内部,导致VS崩溃)一般来说,在.net的大多数版本上,如果您的程序在没有任何信息的情况下崩溃,则可能是这样导致的堆栈溢出。我这样做了:私有ObservableCollection程序;//注意小写字母p!公共ObservableCollection程序//大写字母p!{get{return this.programs;//小写字母p!}设置{OnPropertyChanged(“Program”);}},但我再次更改“ItemsSource=“{Binding Path=Programs}”它再次崩溃。当我重新启动VS2012时,它甚至没有显示我在get set中所做的更改。我可以从上面粘贴的代码中告诉您,programs属性中存在堆栈溢出。但是如何解决它,我尝试在get set和程序中进行更改(小写)声明,当我再次在Xaml中进行更改时,它会再次出现相同的问题。如何解决?请帮助我..我迷路了..请确保关闭Xaml文件,以便Xaml设计器不再打开它(如果这是问题的原因)。更改文件保存。关闭文件。重新打开它。它是否包括您的更改?应该是的,您刚刚保存了它如果生成成功,则文件与以前不同。
    public ObservableCollection<Program> Programs 
    {
        get
        { 
            return Programs; // upper case p!  recursively calling itself!
        }
    ...
    }
 private ObservableCollection<Program> programs; // note lower case p!

    public ObservableCollection<Program> Programs // upper case p!
    {
        get
        { 
            return this.programs; // lower case p!
        }
    ...
    }
        set 
        { 
            OnPropertyChanged("Programs"); 
        }
    private ObservableCollection<Program> programs; // note lower case p!

    public ObservableCollection<Program> Programs // upper case p!
    {
        get
        { 
            return this.programs; // lower case p!
        }

        set
        {
            this.programs = value; // lower case p
            OnPropertyChanged("Programs");
        }        
    }