을 반환 할 수 있습니다. 대부분은 발견되지 않고 FallBackValue를 사용합니다.사전 내 코드에서 꽤 많은 사전 바인딩이 DependencyProperty.UnsetValue
이 모든 기능을 사용자에게 큰가. 내가 디버거에서 실행할 때
그러나, 그것은 출력 창에서 모든 오류를 표시하는 데 시간이 오래 걸립니다.
나는이 질문 WPF Dictionary Binding failure is very slow 물어 내가 DependencyProperty.UnsetValue 반환해야 함을 들었다.나는 것을 시도하고, 그것을 컴파일합니다. 그러나 그것을 실행할 때 예외가 생깁니다.
도 DependencyProperty.UnsetValue를 반환 할 수있는 사전을 정의하는 방법은 없나요? (또는 다른 방법으로 빨리 실패합니다.)
UPDATE를 : errorResult 다른 경우는 null이 될 것입니다, 그래서
public class NullTolerantDictionary<TKey, TValue>
: Dictionary<TKey, TValue> where TValue : class
{
public new TValue this[TKey key]
{
get
{
TValue value;
bool success = TryGetValue(key, out value);
if (success)
return value;
var errorResult = DependencyProperty.UnsetValue as TValue;
if (errorResult != null)
return errorResult;
return default(TValue);
}
}
}