protected override void SetValue(string value, EditID3File file) { EditTextFrame frame; if (!frames.TryGetValue(file, out frame)) { frame = EditTextFrame.GetFrameFromId(FrameId); frames.Add(file, frame); file.V2Tag.Add(frame); } lock (settingTextFrames) { settingTextFrames.Add(frame); } frame.Text = value; lock (settingTextFrames) { settingTextFrames.Remove(frame); } }
private void Frame_PropertyChanged(object sender, PropertyChangedEventArgs e) { EditTextFrame frame = sender as EditTextFrame; if (e.PropertyName == nameof(frame.Text) && !settingTextFrames.Contains(frame)) { Update(); } }
private void BtnAddFrame_Click(object sender, RoutedEventArgs e) { var frameIdResult = new GetTextWindow().Get("Frame ID:"); if (frameIdResult.Item1 == MessageBoxResult.Yes) { foreach (EditID3File editFile in viewModel.SelectedFiles) { editFile.V2Tag.Add(EditTextFrame.GetFrameFromId(frameIdResult.Item2)); } } }
public void AddFrame(EditTextFrame frame, EditID3File file) { if (frames.ContainsKey(file)) { return; } frames.Add(file, frame); frame.PropertyChanged += Frame_PropertyChanged; Update(); }
public bool RemoveFrame(EditTextFrame frame) { EditID3File file = null; foreach (KeyValuePair <EditID3File, EditTextFrame> pair in frames) { if (pair.Value != frame) { continue; } file = pair.Key; break; } if (file == null) { return(false); } frame.PropertyChanged -= Frame_PropertyChanged; return(frames.Remove(file)); }