사용자 지정 컨트롤을 만들고 있습니다.종속성 속성을 사용하여 이미지 소스 바인딩
이public static readonly DependencyProperty PosterProperty = DependencyProperty.Register(
nameof(Poster),
typeof(ImageSource),
typeof(MovieButton),
new UIPropertyMetadata(null));
public ImageSource Poster
{
get { return (ImageSource)GetValue(PosterProperty); }
set { SetValue(PosterProperty, value); }
}
지금은 XAML에서 내 사용자 컨트롤에 다음을 추가 할 수 있습니다 : Poster="Images/NoPoster.png"
DependencyProperty
다음 내 C# 파일에서
<Image Source="{TemplateBinding Poster}" />
입니다 :이 사용자 지정 컨트롤이 같은 그것의 이미지가 코드에서 Poster = new BitmapImage(new Uri(@"pack://application:,,,/Images/NoPoster.png"))
모든 것이 잘 작동합니다. 내가 궁금해하는 이유는 ImageSource
대신 Poster
을 BitmapImage
또는 string
으로 선언 할 수 없다는 것입니다.
답변 해 주셔서 감사합니다. 귀하의 모범은 실제로 작동하고 내가 처음에 무엇을했는지. 나는 문자열을 'Uri'로 먼저 변환 한 다음 'BitmapImage'로 변환하는 것보다 작다고 생각합니다. 무엇을 제안하겠습니까? 더 많이 사용되는 방법입니까? – Krowi
'string'은 물론 충분합니다. 그러나 Uri 클래스가 수행하는 유효성 검사를 활용하고 싶을 수도 있습니다. 컨트롤 사용자가 잘못된 URI를 전달하려고하면 예외가 발생합니다. 가지고있을 나쁜 것이 아닙니다. – Clemens
나는 이것이 약간의 화제를 얻기 시작하고있다는 것을 알고있다. 그러나 '우리'의 유효성 검사는 무엇을 의미 하는가? – Krowi