반응형
정적 클래스 속성에 바인딩하고 있습니다.
텍스트 블록 텍스트를 정적 클래스의 속성에 바인딩합니다.정적 클래스의 속성 값이 변경될 때마다 다른 창 또는 사용자 정의 컨트롤에 있는 텍스트 블록에 반영됩니다.
x:Static 마크업 확장을 사용하여 정적 클래스의 모든 속성에 바인딩할 수 있지만 변경 추적을 구현하지 않으면 새로 고침 시 오류가 발생할 수 있습니다.
<TextBlock Text="{Binding Source={x:Static sys:Environment.MachineName}}" />
중첩된 정적 클래스를 사용하여 상수를 구성/분리하는 사용자용입니다.네스트된 스태틱클래스에 바인드 할 필요가 있는 경우는, 네스트된 클래스에 액세스 하려면 , 닷(.) 연산자 대신에 플러스(+) 연산자를 사용할 필요가 있는 것 같습니다.
{Binding Source={x:Static namespace:StaticClass+NestedStaticClasses.StaticVar}}
예:
public static class StaticClass
{
public static class NestedStaticClasses
{
public static readonly int StaticVar= 0;
}
}
이것은 나에게 효과가 있었다.
Text="{Binding Source={x:Static MyNamespace:MyStaticClass.MyProperty}, Mode=OneWay}"
없이.Mode=OneWay
나는 예외가 있다.
나한텐 효과가 있었어!
다음과 같은 정적 속성을 가진 정적 클래스가 있는 경우
namespace App.Classes
{
public static class AppData
{
private static ConfigModel _configModel;
public static ConfigModel Configuration
{
get { return _configModel; }
set { _configModel = value; }
}
}
public class ConfigModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private bool _text = true;
public bool Text
{
get { return _text ; }
set {
_text = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Text"));
}
}
}
}
이렇게 xaml에 묶을 수 있어요.
xmlns:c="clr-namespace:App.Classes"
<TextBlock Text="{Binding Path=Text, Source={x:Static c:AppData.Configuration}}"/>
언급URL : https://stackoverflow.com/questions/3862455/binding-to-static-class-property
반응형
'programing' 카테고리의 다른 글
Windows에서 Python에서 Excel 구동 (0) | 2023.04.18 |
---|---|
Python : dict(존재하는 경우) 목록. 새로운 dict를 추가하지 않으면 dict 값을 증가시킵니다. (0) | 2023.04.18 |
bash에 변수가 있는 별칭 (0) | 2023.04.18 |
bash에 파일이 있는지 테스트하기 위해 루프하는 동안 (0) | 2023.04.18 |
PowerShell에서 %(%)는 무엇을 합니까? (0) | 2023.04.18 |