前提・実現したいこと
月表示カレンダーで日付をラベルのListによって表示させたいと考えています。
コンボボックスで年と月を指定し、その通りのカレンダーにしたいのですが、
var firstDate = new DateTime(int.Parse(ChangeYEAR.GetYear() ), int.Parse(ChangeMONTH.getmonth() ) );
のgetyear,getmonthのエラーCS1061が起こります。
ここの改善方法を教えてください。
発生している問題・エラーメッセージ
'MainWindow' に 'ChangYEAR_SelectionChanged' の定義が含まれておらず、型 'MainWindow' の最初の引数を受け付けるアクセス可能な拡張メソッド 'ChangYEAR_SelectionChanged' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足していないことを確認してください。(11)
コンボボックスに'getyear'('getmonth')の定義が含まれておらず、型 'ComboBox' の最初の引数を受け付けるアクセス可能な拡張メソッド 'GetYear' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足していないことを確認してください。(61)
該当のソースコード
C#
1 2using System; 3using System.Collections.Generic; 4using System.Linq; 5using System.Text; 6using System.Threading.Tasks; 7using System.Windows; 8using System.Windows.Controls; 9using System.Windows.Data; 10using System.Windows.Documents; 11using System.Windows.Input; 12using System.Windows.Media; 13using System.Windows.Media.Imaging; 14using System.Windows.Navigation; 15using System.Windows.Shapes; 16 17namespace calender_otomo 18{ 19 /// <summary> 20 /// MainWindow.xaml の相互作用ロジック 21 /// </summary> 22 public partial class MainWindow : Window 23 { 24 private bool combbox_change = true; 25 26 public MainWindow() 27 { 28 DateTime now = DateTime.Now; 29 List<int> years = new List<int>() ; 30 int[] month = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }; 31 32 InitializeComponent(); 33 34 //前後10年の算出 35 for (int i = (now.Year - 10); i <= (now.Year) + 10; i++) 36 { 37 years. Add( i) ; 38 39 } 40 41 //コンボボックスの設定 42 ChangeYEAR.ItemsSource =years; 43 ChangeMONTH.ItemsSource =month; 44 45 46 combbox_change = false; 47 ChangeYEAR.SelectedIndex = 10; 48 combbox_change = true; 49 ChangeMONTH.SelectedIndex = now.Month - 1; 50 51 //ラベルのList化 52 List<Label> test = new Label<Label>(); 53 test.Add(Su1); 、、、 test.Add(Sa6); 54 55 56 57 var firstDate = new DateTime(int.Parse(ChangeYEAR.GetYear() ), int.Parse(ChangeMONTH.getmonth() ) ); 58 59 int dayOFWeek = (int)firstDate.DayOfYear; 60 int lastday = firstDate.AddMonths(1).AddDays(-1).Day; 61 62 for (int day = 1; day <= lastday; day++) 63 { 64 int index = (day - 1) + dayOFWeek; 65 int x = index % 7; 66 int y = index / 7; 67 68 test[day].Content = day; 69 } 70 71 72 73 } 74 75 /// コンボボックス接続 76 private void SelectionChanged(object sender, SelectionChangedEventArgs e) 77 { 78 //ラベルのList化 79 List<Label> test = new Label<Label>(); 80 test.Add(Su1); 、、、 test.Add(Sa6); 81//ラベルは一部省略 82 83 List calender = new List(); 84 85 if (combbox_change != true) 86 { 87 return; 88 } 89 90 List.Content (Convert.ToInt32(ChangeYEAR.SelectedItem), Convert.ToInt32(ChangeMONTH.SelectedItem)); 91 Calender_update(); 92 93 } 94 95 private void Calender_update() 96 { 97 throw new NotImplementedException(); 98 } 99 100 101 //コンボボックスに今の年月を設定 102 private void Today_Click(object sender, RoutedEventArgs e) 103 { 104 DateTime now = DateTime.Now; 105 106 ChangeYEAR.SelectedIndex = 10; 107 ChangeMONTH.SelectedIndex = now.Month - 1; 108 } 109 110 private void ChangeMONTH_SelectionChanged(object sender, SelectionChangedEventArgs e) 111 { 112 } 113 114 private class Label<T> : List<Label> 115 { 116 } 117 } 118}
試したこと
ChangYEAR.SelectedItemをint型に変換
そのほか、「考えられる修正内容」と出た
List.Content (Convert.ToInt32(ChangeYEAR.SelectedItem), Convert.ToInt32(ChangeMONTH.SelectedItem));
Calender_update();
でのContent部分やToInt32の箇所の修正
補足情報(FW/ツールのバージョンなど)
FWは4.7.2です
この春から学び始めています。
参考書などは調べたところKindleが多いようですが、オススメないし初心者向けのものがあれば教えてください
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。