반응형 Framework/MAUI15 [MAUI] MaxLines 와 LineBreakMode 같이 안될 때 MAUI 공부하면서 'MaxLines' 속성과 'LineBreakMode'를 같이 사용 시 속성값이 같이 적용이 안되어 이를 해결한 방법을 공유하고자 한다. 이와 비슷한 경우가 Width값을 잘못 주어 영역 밖으로 나가버리는 경우가 있는데 해당 경우가 아닌 두 가지 속성을 주었는데 '...' 이 발생하지 않은 경우이다. Label: MaxLines and LineBreakMode · dotnet/maui · Discussion #5492 I am trying to become more familiar with .net MAUI and the app I was writing I decided I wanted to have a label with at most 2 lines of text and then t.. 2023. 3. 3. [MAUI] 상대 바인딩 - 상위 항목에 바인딩 상대 바인딩 - 상위 항목에 바인딩 모드는 시작 전 트리에서 특정 유형의 부모 요소에 바인딩하는 데 사용된다. FindAncestor 모드는 Element 형식에서 파생되는 부모 요소에 바인딩하는 데 사용된다. FindAncestorBidningContext 모드는 부모 요소의 BindingContext에 바인딩하는 데 사용된다. FindAncestor 및 FindAncestorBindingContext 상대 바인딩 모드(상위 항목에 바인딩)를 사용할 때는 AncestorType 속성을 Type으로 설정해야 한다. 그러지 않으면 XamlParseException 이 throw 된다. Mode 속성이 설정되지 않은경우, AncestorType 속성을 Element에서 파생된 형식으로 설정하면 Mode 속성.. 2022. 10. 11. [MAUI] 상대 바인딩 - 자기 자신에게 바인딩 상대 바인딩중 자기 자신에게 바인딩하는 방법을 알아보자. 자기 자신에게 바인딩하는 방법은 RelativeSource 속성을 Self로 지정하여 사용한다. 요소의 속성을 다른 속성에 바인딩할 때 사용한다. 예제) 해당 예제에서 width 속성 값을 height 속성에 바인딩 하였다. 해당 두 속성의 값은 동일하다. 바인딩 시 요소의 속성을 바인딩 시 유형이 같아야 하며 만약 다르다면 변환기를 통해 지정하면 된다. 더보기 [참고] https://learn.microsoft.com/ko-kr/dotnet/maui/fundamentals/data-binding/relative-bindings#bind-to-self 상대 바인딩 - .NET MAUI .NET MAUI 상대 바인딩은 바인딩 대상의 위치를 기준으로 .. 2022. 10. 4. [MAUI] 상대 바인딩 상대 바인딩 이란? MAUI의 상대 바인딩은 바인딩 대상의 위치를 기준으로 바인딩 소스를 설정하는 기능이다. 상대 바인딩은 RelativeSource 태그 확장을 사용하여 생성되며, 바인딩 식의 Source 속성으로 설정된다. RelativeSource 태그 확장 RelativeSource는 RelativeSourceExtension 클래스에서 지원된다. Mode : 바인딩 대상의 위치에 상대적으로 바인딩 소스의 위치를 설명한다. AncestorType (Type : Type) : Mode 속성이 FindAncestor 인 경우 살펴보아야 할 상위 항목 유형이다. AncestorLevel (Type : int) : Mode 속성이 FindAncestor인 경우 살펴보아야 할 선택적 상위 항목 수준이다. .. 2022. 10. 4. [MAUI] 바인딩 변환기 매개변수 바인딩 클래스는 ConverterParameter 속성을 정의한다. 이 속성이 설정되어 있는 경우 값은 parameter 매개변수로 Convert 및 ConvertBack 메서드에 전달된다. 예제를 통해 ConverterParameter 속성 사용방법을 알아보자. BoxViewModel public class BoxViewModel : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; private int _width = 50; public int width { get { return _width; } set { if(_width != value) { _width = value; PropertyChanged.. 2022. 9. 30. [MAUI] 바인딩 변환기 속성(IValueConverter) 값 변화기 클래스에는 속성 및 일반 매개 변수가 있을 수 있다. 값 변환기는 원본에서 대상에 대한 제네릭 형식의 개체로 변환할 수 있다. 예시 BoolToObjectConvert Class class BoolToObjectConvert : IValueConverter { public T TrueObject { get; set; } public T FalseObject { get; set; } public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { return (bool)value ? TrueObject : FalseObject; } public object ConvertBack(object v.. 2022. 9. 23. [MAUI] 바인딩 값 변환기 (IValueConverter) MAUI 바인딩은 일반적으로 원본 속성에서 대상 속성으로 데이터를 전송하고 경우에 따라 대상 속성에서 원본 속성으로 데이터를 전송한다. 데이터 바인딩의 속성을 이용하여 다른 형식의 변환을 원하는 경우 IValueConverter 인터페이스를 구현하는 클래스에 일부 특수한 코드를 작성하면 된다. IValueConverter를 구현하는 클래스를 값 변환기 / 바인딩 변환기 / 바인딩 값 변환기라고 한다. IValueConverter IValueConverter는 기본적으로 Convert, ConvertBack 메서드를 갖고 있다. 바인딩 값 변환을 하기 위한 인터페이스이다. Convert public object Convert(object value, Type targetType, object paramet.. 2022. 9. 23. [MAUI] 바인딩 경로 - Path .NET MAUI에서 클래스의 속성(Binding)을 단일 속성, 하위 속성 or 컬렉션의 멤버를 Path로 설정할 수 있다. 위의 예제는 TimePicker 를 통해 Path를 설정하는 방식을 알 수 있다. 쉽게 생각하면 BInding 된 속성에 대해서 어떤 값을 사용할지 정한다고 보면 된다. 더보기 [참고] https://learn.microsoft.com/ko-kr/dotnet/maui/fundamentals/data-binding/binding-path 바인딩 경로 - .NET MAUI .NET MAUI 데이터 바인딩을 사용하여 Binding 클래스의 Path 속성을 사용하여 하위 속성 및 컬렉션 멤버에 액세스할 수 있습니다. learn.microsoft.com 2022. 9. 21. [MAUI] 문자열 서식 지정 MAUI에서 데이터 바인딩을 사용하여 개체 또는 값을 표현 시 서식을 지정하여 표현이 가능하다. 문자열 서식 지정은 일반적으로 String.Format 메서드를 사용하여 수행된다. String.Format 관련해서는 MS Docs에 잘 나와 있기 때문에 해당 링크를 공유해 두겠다. (String.Format MS Docs 링크) 서식 문자열은 작은따옴표 문자로 구분되어 중괄호를 다른 태그 확장으로 처리하지 않도록 주의해야한다. 이전, Viewmodel 바인딩 소스를 응용하여 좀 더 예시를 들어보겠다. 각 Slider에 맞는 Label을 설정하여 각 슬라이드의 값을 표시하고 있다. 원하는 형식의 포멧으로 다양하게 값을 표현할 수 있다. 더보기 문자열 서식 지정 - .NET MAUI | Microsoft D.. 2022. 9. 6. [MAUI] Viewmodel 바인딩 데이터 바인딩에서 Viewmodel을 사용하는 경우 Viewmodel은 데이터 바인딩 원본이다. Viewmodel의 속성 값이 변경될 때 알림 메커니즘을 이용하여 속성 값을 변경한다. 알림 메커니즘은 INotifyPropertyChanged 인터페이스이며 PropertyChanged라는 이벤트를 정의한다. 이 인터페이스를 구현하는 클래스는 일반적으로 public 속성 중 하나가 값을 변경할 때 이벤트를 발생합니다. 예시 간단하게 색상을 변경하는 예시이며 Hue, Saturation, Luminosity 값들을 받아 색상을 재정의하는 예시이다. ColorViewModel 클래스 public class ColorViewModel : INotifyPropertyChanged { public event Prop.. 2022. 8. 24. [MAUI] 바인딩 모드 .NET MAUI 바인딩 가능 속성에는 바인딩 가능한 속성을 만들 때 설정되고 개체의 속성에서 사용할 수 있는 기본 바인딩 모드가 있다. 기본 바인딩 모드는 속성이 데이터 바인딩 대상일 때 적용되는 모드를 나타낸다. Rotaion, Scale, Opacity와 같은 대부분의 속성에 대한 기본 바인딩 모드는 OneWay이다. 데이터 바인딩 대상인 경우에는 대상 속성이 원본에서 설정된다. 여기서 말하는 대상은 데이터 바인딩이 설정된 개체이며, 원본은 데이터 바인딩에서 참조하는 개체 이다. 종류 Default OneWay : 원본에서 대상으로 전송 OneWayToSource : 대상에서 원본으로 전송 TwoWay : 원본과 대상 간에 양방향으로 전송 OneTime : 원본에서 대상으로 전송되지만 변경되는 경우.. 2022. 8. 17. [MAUI] 데이터 바인딩 기본 사항 .NET MAUI는 데이터 바인딩을 사용하며 두 개체의 속성을 연결하여 한 개체의 변경으로 다른 개체가 변경되도록 할 수 있다. 해당 기능은 매우 유용한 기능이며 데이터 바인딩을 코드에서 완전히 정의할 수 있지만 XAMl은 바로 가기 및 편의를 제공해준다. 데이터 바인딩 데이터 바인딩은 '원본'과 '대상'이라는 두 개체의 속성을 연결해준다. 쉽게 말해 서로 간의 속성이 연결이 되어 반응을 하는 것이다. 데이터 바인딩이 이루어지기 위해서는 두 단계가 필요하다. BindingContext 대상 개체의 속성을 원본 개체로 설정해야 한다. SetBinding 메서드는 대상 개체에서 호출하여 해당 개체의 속성을 원본 개체의 속성에 바인딩 해야 한다. 대상 속성은 바인딩 가능한 속성이여야 한다. 즉, 대상 개체가 .. 2022. 8. 16. [MAUI] XAML 태그 확장 .NET XAML 태그 확장을 사용하면 속성을 다른 원본에서 간접적으로 참조되는 개체 또는 값으로 설정할 수 있다. 일반적으로 XAML을 사용하여 개체의 속성을 문자열, 숫자, 열거형 멤버 또는 백그라운드 값으로 변환되는 문자열과 같은 명시적 값으로 설정한다. 그러나 경우에 따라 속성은 다른 곳에 정의된 값을 대신 참조해야 하거나 런타임에 코드로 약간 처리해야 할 수 있다. 공유 리소스 만약, 동일한 XAML 속성이 여러번 사용된다면 하나로 만들어 관리하는 게 관리 포인트에 더 좋다. 하나로 만들지 않는다면 동일한 속성을 여러 번 수정하러 다니는 경우가 생기고 누락되는 경우가 생길 수 있기 때문이다. 이러한 불편함을 없애고자 나온 솔루션은 값 또는 개체를 리소스 사전에 저장하여 사용하는 것이다. 페이지에.. 2022. 8. 15. [MAUI] XAML 이란 XAML (Extensible Application Markup Language) XAML(Extensible Application Markup Language)은 개체를 인스턴스화 및 초기화하고 부모-자식 계층 구조에서 개체를 구성하기 위한 프로그래밍 코드 대신 사용할 수 있는 XML 기반 언어이다. XAML을 사용하면 개발자가 코드가 아닌 태그를 사용하여 .NET 다중 플랫폼 앱 UI(.NET MAUI) 앱에서 사용자 인터페이스를 쉽게 정의할 수 있다. .NET MAUI 앱에는 XAML이 필요하지 않지만, 간결하고 시각적으로 일관되며 도구 지원이 있는 경우가 많기 때문에 UI를 개발하는 것이 좋다. XAML은 XAML 기반 데이터 바인딩을 통한 viewmodel 코드에 연결된 뷰를 정의하는 MVVM(.. 2022. 6. 14. [MAUI] .NET MAUI 소개 .NET MAUI 알고왔니? 소개 .NET MAUI 는 .NET 다중 플랫폼 앱 UI 이며 C# 과 XAML을 사용하여 네이티브 모바일 및 데스크톱 앱을 만들기 위한 플랫폼 간 '프레임워크' 입니다. .NET MAUI를 사용하여 단일 공유 코드 베이스에서 Android, iOS, macOS 및 Windows 실행할 수 있는 앱을 개발할 수 있습니다. .NET MAUI는 오픈 소스이며, 성능 및 확장성을 위해 처음부터 다시 빌드된 UI 컨트롤을 사용하여 모바일에서 데스크톱 시나리오로 확장된 Xamarin.Forms의 진화된 프레임워크 입니다. Xamarin.Forms 의 단점인 플랫폼간 소스를 정의해줘야하는데 .NET MAUI는 단일 코드 베이스이기 때문에 더욱 효율적으로 개발을 할 수 있습니다. 이점이 .. 2022. 6. 13. 이전 1 다음 반응형