source

StaticExtension 값을 확인할 수 없습니다.

manysource 2023. 4. 10. 22:03

StaticExtension 값을 확인할 수 없습니다.

정적 속성에 대한 WPF 바인딩에 몇 가지 문제가 있습니다.제 어플리케이션에는 Globals라는 클래스가 있는데, 이 클래스는 ThisAddIn에 대한 정적 속성을 포함하고 있습니다.이 오브젝트를 사용하면 기본적으로 바인딩에서 사용하는 사용자 속성에 액세스할 수 있습니다.XAML은 다음과 같습니다.

<TextBlock Text="{Binding Path=User.Name
                   , Source={x:Static Member=s:Globals.ThisAddIn}}" />

네임스페이스는 다음 행으로 맨 위에 선언됩니다.

xmlns:s="clr-namespace:ConsoleApplication16.Model"

XAML에서 정적 속성을 참조하는 방법은 여러 가지가 있습니다만, 이 방법 이외에는 아무것도 동작하지 않았습니다.이 방법이 가장 논리적인 방법인 것 같습니다.제가 찾은 샘플 중 일부는 경로 또는 멤버를 전혀 사용하지 않았습니다.

몇 가지 테스트를 통해 올바른 방법을 찾았습니다.는 "x:Static Member"를 사용하여 클래스 및 사용할 정적 속성을 정의하고, Path는 일반 바인딩과 마찬가지로 이 개체 내에서 올바른 속성을 정의합니다.

이 솔루션은 불평 없이 컴파일되지만 StaticExtension 값을 열거형, 정적 필드 또는 정적 속성으로 해결할 수 없음을 알려주는 XAMLParseException이 직접 표시됩니다.

확신해주다Globals.ThisAddIn공개되어 있습니다.

리소스 파일을 사용하는 경우에도 이 메시지가 나타날 수 있습니다.이 경우 액세스 수식자가 다음과 같이 설정되어 있는지 확인해야 합니다.Public:

여기에 이미지 설명 입력

출력 라이브러리 프로젝트에서는 Resources.resx 파일의 생성기가 기본적으로 ResXFileGodeGenerator가 아닌 PublicResXFileCodeGenerator로 수정되었는지 확인해야 합니다.

팔로잉을 다음으로 대체...

퍼블릭 리소스가 아닙니다.

이것

공공 자원을 바로잡다

또, 상기의 모든 것이 올바르게 고려되고 있습니다만(특히 액세스 수식자를 public으로 설정), 개발중에 변환된 문자열등의 자원을 추가하면, 새로운 자원이 예외를 발생시키는 한편, 같은 자원의 다른 리소스는 정상적으로 동작하고 있는 경우도 있습니다.나는 그런 일이 꽤 자주 있었다.

이 경우 해당 프로젝트를 '청소'하고 '재구축'하는 데 도움이 될 수 있습니다.'깨끗'은 중매쟁이다!프로젝트를 마우스 오른쪽 버튼으로 클릭하고 상황에 맞는 메뉴에서 '클린'을 선택합니다.'재구축'이나 '구축'보다.

거의 매번 효과가 있었어요.

언급URL : https://stackoverflow.com/questions/9773610/staticextension-value-cannot-be-resolved