private void InsertIntoList(SdCardMessageModel message, int index) { if (index > 250) { Debug.WriteLine("sd message index out of range, skipped"); return; } var insertAt = (index == -1) ? Messages.Count : index; var newmodel = new SdCardMessageModel() { Location = message.Location, LongFileName = message.LongFileName, }; if (insertAt > ControlMessages.Count) { insertAt = ControlMessages.Count; } ControlMessages.Insert(insertAt, newmodel); var newmes = new SdMessageViewModel(newmodel); newmes.RemoveThis = () => { Messages.Remove(newmes); ControlMessages.Remove(newmes.DataModel); }; Messages.Insert(insertAt, newmes); }
/// <summary> /// Add a range of messages to the list /// </summary> /// <param name="paths">Path and filename of message to add</param> public void AddMessages(IEnumerable <string> paths) { //var list = _card == 0 ? ProjectData.MessagesA : ProjectData.MessagesB; var errorText = new StringBuilder(); foreach (var path in paths) { var z = path.ToLower(); if (z.ToLower().Contains("16khz")) { errorText.AppendLine(SdMessageCard.Error16KhzIsAllreadyAdded); continue; } if (!z.EndsWith(".mp3")) { errorText.AppendLine(SdMessageCard.ErrorAddFileMp3Extension); continue; } var model = new SdCardMessageModel { Location = path }; InsertIntoList(model, -1); } if (errorText.Length > 0) { Application.Current.Dispatcher.Invoke(new Action(() => MessageBox.Show(errorText.ToString(), SdMessageCard.ErrorAddFileTitle, MessageBoxButton.OK, MessageBoxImage.Error))); } }
public SdMessageViewModel(SdCardMessageModel model) { _model = model; }