2015-01-22 1 views
0

내 설정에 하나의 변수 만 기본값으로 저장하는 방법이 있습니까? 명령이 Properties.Settings.Default.Save(); 인 것을 알고 있지만 설정 변수 중 하나만 변경하면됩니다. 모두 변경하지는 않습니다.WPF : 설정 변수를 하나만 저장하는 방법은 무엇입니까?

사용자 설정 명확한 추상화 기대 : 귀하의 질문은 설계 문제에서 힌트

+1

은 Properties.Settings.Default.Save()를 호출하기 전에 하나의 설정 토큰 만 업데이트하면됩니다. –

+0

좋아요,하지만 설정 변수 중 둘 이상을 변경하고 그 중 하나만 저장하려는 경우 여기에 접근 할 수있는 방법이 있습니까? 이 변수의 값을 임시 변수에 저장하는 것보다 설정을 다시로드하는 것보다이 변수를 저장하는 것보다 ... – MartinVotruba

+0

저장하지 않으려는 경우 왜 설정 값을 변경하려고합니까? –

답변

0

아니요, 디자이너에서 생성 한 Settings 개체에 개별 속성 값을 저장할 방법이 없습니다. 전체 개체 만 저장하거나 전혀 저장할 수 없습니다.

설정이 XML 파일에 저장되므로 어쨌든 단일 값을 쓸 수 없게됩니다. 이 XML 파일을 작성하는 것은 상대적으로 저렴합니다. 일반적으로 작은 파일입니다 (사용자의 Settings 개체에서 거대한 데이터 조각을 직렬화하지 않는 한) 프로그램에서 성능에 거의 영향을주지 않습니다 (특히 사용자 작업 및 hellip에 대한 응답으로 작성하는 경우 특히 그렇습니다) 사용자는 컴퓨터에 비해 매우 느립니다.

일반적으로 이 아닌은 프로그램이 종료 될 때까지 Settings 개체 쓰기를 지연해야합니다. 모든 설정 (또는 설정 그룹)이 수정 될 때마다 언제든지 Settings.Default.Save()으로 전화를 걸어 프로그램의 나중에 발생하는 상황 (예 : 충돌)에 관계없이 설정이 실제로 디스크에 유지되도록하는 것이 좋습니다.


마지막으로 참고 특정 시나리오 – 하나 메뉴를 표시할지 여부를 나타내는 플래그, 당신은 반드시 아직 추가 할 필요가 없습니다이 값 여부를 –을 지속할지 여부를 나타내는 또 다른 플래그의 측면에서 또 다른 플래그는 다른 곳에 있으며 조건부로 첫 번째 플래그를 기반으로 저장합니다.

대신 두 개의 플래그 (예 : Settings)를 사용하십시오. Settings.Default.RememberMenuVisibleSettingsSettings.Default.MenuVisible. 그런 다음 프로그램이 시작될 때 가장 먼저 할 일은 RememberMenuVisibleSettings이며, false으로 설정된 경우 MenuVisible을 기본 설정으로 초기화하여 설정 파일에 저장된 내용보다 우선합니다. 나머지 프로그램은 걱정할 필요가 없습니다. 그 시점 이후에 두 플래그 중 특별한 처리가 필요하지 않습니다. 프로그램이 다시 시작될 때 옳은 일을 할 것이라는 자신감을 가지고 정상적으로 둘 다 저장할 수 있습니다.

0

  • 로드 프로그램의 모든 설정은
  • 은 아마
  • 모든 저장 프로그램 실행 중에 설정을 수정 시작 프로그램 종료 전 설정

뭔가가 필요하면 "일부 값을 편집하지만 설정으로 저장하지 마십시오."와 같이 정확하게 수행하는 추가 레이어를 도입해야합니다. 설정을 수정하지 않고 일부 값을 변경할 수 있습니다.