경고 - 저는 WPF와 관련하여 newb입니다. 그래서 내가 뭘 하려는지 내 ViewModel에서 문자열 속성에 바인딩 된 텍스트 상자가 있습니다. 사용자가 텍스트 상자를 지울 때, 사용자가 처음 열 때 (창을 열었을 때) 자동으로 되돌리려합니다. 기본적으로 나는 사용자가 텍스트 상자를 지우는 것을 막고있다.새 값이 비어 있으면 원래 값으로 되돌립니다.
현재 WPF는 TwoWay로 바인딩을 가지고 있으며 UpdateSourceTrigger를 PropertyChanged로 설정했습니다. 사용자가 하나의 작은 변화를 만들 때 내 ViewModel의 속성이 업데이트되기를 좋아하기 때문에 그 UpdateSourceTrigger를 유지하려고합니다. 그렇게하면 사용자가 무언가를 할 때 (예 : 사용자가 무언가를 변경했기 때문에 내 저장 버튼을 업데이트) 다른 UI 물건을 할 수 있습니다.
내 뷰 모델에서 내 재산은 내가 원래 값을 사용하려고 시도와 함께, 현재 다음과 같습니다가 :
public string SourceName
{
get { return this.sourceName; }
set
{
if (!this.sourceName.Equals(value, StringComparison.OrdinalIgnoreCase))
{
if (!string.IsNullOrWhiteSpace(value))
this.sourceName = value;
else
this.sourceName = this.configuredSource.Name;
RaisePropertyChanged("SourceName");
}
}
}
오전 데 문제가 내가보기 내를 무시 생각입니다 때문에의 'RaisePropertyChanged' UpdateSourceTrigger 설정했습니다. 방아쇠를 꺼내면이 방법이 효과가 있지만 컨트롤을 UI 업데이트로 가져 가야합니다. 따라서 내가 할 수만 있다면 방아쇠를 계속 지키고 싶습니다.
사용자가 텍스트 상자를 지우면 누구나 원래 값으로 되돌릴 수 있습니까?
당신이 관련 XAML을 게시 할 수 있습니다 : 여기
은 RelayCommand 잃을 초점 화재 갈 수있는 내 XAML의 조각인가? – CodingGorilla