public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { int ifrom = 0; int ito = 0; KeyConfigData KD = (KeyConfigData)value; ObservableCollection <string> dist = new ObservableCollection <string>(); if (value == null) { return(dist); } while (ito < KD.assign.Length) { //最初の{を検索 ifrom = KD.assign.IndexOf("{", ito); if (ifrom >= 0) { //{が発見できた場合}を検索 ito = KD.assign.IndexOf("}", ifrom); if (ito >= 0) { //{から}までをショートカットとして設定 dist.Add(KD.assign.Substring(ifrom + 1, ito - ifrom - 1)); } } else { break; } } return(dist); }
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { ObservableCollection <string> aaa = (ObservableCollection <string>)value; KeyConfigData KD = new KeyConfigData(); foreach (string tmp in aaa) { //1レコードごとに{}で囲んで結合前後にスペース KD.assign += " {" + tmp + "} "; } return(KD); }
/// <summary> /// アプリケーション設定からショートカットキー全定義取得 /// データグリッドの一覧作成元になります /// </summary> /// <param name="KeyConvDef"></param> public void GetAllDef(KeyConfigList KL) { StringCollection src = Properties.Settings.Default.AllKeyDef; //ショートカットキー全定義取得 foreach (string str in src) { KeyConfigData fd = new KeyConfigData(); //最初の空白を検索 int ito = str.IndexOf(" "); //最初の空白までをカテゴリとして抽出 fd.Cat = str.Substring(0, ito); int ifrom = ito + 1; ito = str.IndexOf(" ", ifrom); //次の空白までをIDとして抽出 fd.ID = Convert.ToInt32(str.Substring(ifrom, ito - ifrom)); ifrom = ito + 1; //残りを機能名として設定 fd.name = str.Substring(ifrom); KL.Add(fd); } }