提交记录修改UI/Controls/SettingPanel/SettingPanelMultiItem.cs+60 −0看文件
| @@ -244,12 +244,68 @@ namespace UI.Controls.SettingPanel | ||
| 244 | 244 | { |
| 245 | 245 | string value = (string)pi.GetValue(Data); |
| 246 | 246 | |
| 247 | 新增: if (SettingData.ContainsKey(pi.Name)) | |
| 248 | 新增: { | |
| 249 | 新增: SettingData[pi.Name].Add(value); | |
| 250 | 新增: } | |
| 251 | 新增: else | |
| 252 | 新增: { | |
| 253 | 新增: SettingData.Add(pi.Name, new List<string>() | |
| 254 | 新增: { | |
| 255 | 新增: value | |
| 256 | 新增: }); | |
| 257 | 新增: } | |
| 258 | 新增: | |
| 259 | 新增: | |
| 247 | 260 | var textBox = new InputBox(); |
| 248 | 261 | textBox.Text = value; |
| 249 | 262 | textBox.Placeholder = attribute.Name; |
| 250 | 263 | textBox.Width = 125; |
| 264 | 新增: textBox.TextChanged += (e, c) => | |
| 265 | 新增: { | |
| 266 | 新增: textBox.Error = attribute.Name + (textBox.Text == String.Empty ? "不能为空" : "已存在"); | |
| 267 | 新增: | |
| 268 | 新增: if (!attribute.IsCanRepeat) | |
| 269 | 新增: { | |
| 270 | 新增: if (SettingData[pi.Name].Contains(textBox.Text) && textBox.Tag.ToString() != textBox.Text) | |
| 271 | 新增: { | |
| 272 | 新增: textBox.ShowError(); | |
| 273 | 新增: return; | |
| 274 | 新增: } | |
| 275 | 新增: else | |
| 276 | 新增: { | |
| 277 | 新增: textBox.HideError(); | |
| 278 | 新增: } | |
| 279 | 新增: } | |
| 280 | 新增: if (textBox.Text == String.Empty) | |
| 281 | 新增: { | |
| 282 | 新增: textBox.ShowError(); | |
| 283 | 新增: } | |
| 284 | 新增: else | |
| 285 | 新增: { | |
| 286 | 新增: textBox.HideError(); | |
| 287 | 新增: } | |
| 288 | 新增: }; | |
| 289 | 新增: textBox.GotFocus += (e, c) => | |
| 290 | 新增: { | |
| 291 | 新增: // 记录获得焦点时的数据 | |
| 292 | 新增: textBox.Tag = textBox.Text; | |
| 293 | 新增: }; | |
| 251 | 294 | textBox.LostFocus += (e, c) => |
| 252 | 295 | { |
| 296 | 新增: if (textBox.Text == String.Empty) | |
| 297 | 新增: { | |
| 298 | 新增: textBox.Text = textBox.Tag.ToString(); | |
| 299 | 新增: return; | |
| 300 | 新增: } | |
| 301 | 新增: if (!attribute.IsCanRepeat) | |
| 302 | 新增: { | |
| 303 | 新增: if (SettingData[pi.Name].Contains(textBox.Text) && textBox.Tag.ToString() != textBox.Text) | |
| 304 | 新增: { | |
| 305 | 新增: textBox.Text = textBox.Tag.ToString(); | |
| 306 | 新增: return; | |
| 307 | 新增: } | |
| 308 | 新增: } | |
| 253 | 309 | if (attribute.IsName) |
| 254 | 310 | { |
| 255 | 311 | Title = textBox.Text; |
| @@ -257,6 +313,10 @@ namespace UI.Controls.SettingPanel | ||
| 257 | 313 | pi.SetValue(configData, textBox.Text); |
| 258 | 314 | Data = configData; |
| 259 | 315 | DataChanged?.Invoke(this, EventArgs.Empty); |
| 316 | 新增: | |
| 317 | 新增: SettingData[pi.Name].Remove(textBox.Tag.ToString()); | |
| 318 | 新增: SettingData[pi.Name].Add(textBox.Text); | |
| 319 | 新增: | |
| 260 | 320 | }; |
| 261 | 321 | var item = new SettingPanelItem(); |
| 262 | 322 | item.Name = attribute.Name; |

