C# 为什么我的LINQ查询返回零?

C# 为什么我的LINQ查询返回零?,c#,wpf,linq,C#,Wpf,Linq,我是LINQ的新手,无论我如何努力让这两个查询工作,结果总是为零。我尽了一切努力来计算一个月的工作日和总天数。MDate绑定到日期选择器,BusinessDays绑定到文本框,TotalDaysInMonth绑定到另一个文本框 有人能帮我修复这些查询以显示所选月份的正确值吗?(例如9月:20个工作日,总共30天) 谢谢。在这两种方法中,您都是在声明局部变量,而不是设置属性。在C#中,访问属性时不需要指定类型。删除方法中的int文本。您正在设置局部变量,而不是属性。删除局部变量中的int声明。我得

我是LINQ的新手,无论我如何努力让这两个查询工作,结果总是为零。我尽了一切努力来计算一个月的工作日和总天数。MDate绑定到日期选择器,BusinessDays绑定到文本框,TotalDaysInMonth绑定到另一个文本框

有人能帮我修复这些查询以显示所选月份的正确值吗?(例如9月:20个工作日,总共30天)


谢谢。

在这两种方法中,您都是在声明局部变量,而不是设置属性。在C#中,访问属性时不需要指定类型。删除方法中的
int
文本。

您正在设置局部变量,而不是属性。删除局部变量中的
int
声明。我得到22。问题不在于你的关键。正如@Ephraim所说,你在
SetBusinessDays
SetTotalDaysInMonth
中有
int BusinessDays=…
int TotalDaysInMonth=…
。您基本上是在声明一个局部变量,而不是将值分配给
BusinessDays
TotalDaysInMonth
属性。删除
int
。就是这样。真不敢相信我竟然没发现。非常感谢你,你为我节省了很多时间和精力。祝你过得愉快,耶夫吉尼!
public class LocationViewModel : INotifyPropertyChanged
{

    public LocationViewModel()
    {    
        SetBusinessDays();
        SetTotalDaysInMonth();
    }

    public DateTime mDate = DateTime.Now;

    public DateTime MDate
    {
        get { return mDate; }
        set
        {
            if (value == mDate)
            {
                return;
            }
            else
            {
                mDate = value;
                OnPropertyChanged("MDate");

                SetBusinessDays();
                SetTotalDaysInMonth();
            }
        }
    }

    int _businessDays;

    public int BusinessDays
    {
        get { return _businessDays; }
        set
        {
            _businessDays = value;
            OnPropertyChanged("BusinessDays");
        }
    }

    int _totalDaysInMonth;

    public int TotalDaysInMonth
    {
        get { return _totalDaysInMonth; }
        set
        {
            _totalDaysInMonth = value;
            OnPropertyChanged("TotalDaysInMonth");
        }
    }


    private void SetBusinessDays()

    {
        int BusinessDays = Enumerable.Range(1, DateTime.DaysInMonth(MDate.Year, MDate.Month))
                            .Select(day => new DateTime(MDate.Year, MDate.Month, day))
                            .Count(d => d.DayOfWeek != DayOfWeek.Sunday &&
                                        d.DayOfWeek != DayOfWeek.Saturday);
    }

    private void SetTotalDaysInMonth()
    {
        int TotalDaysInMonth = Enumerable.Range(1, DateTime.DaysInMonth(MDate.Year, MDate.Month))
                            .Select(day => new DateTime(MDate.Year, MDate.Month, day))
                            .Count();
    }
}