2017-05-17 17 views
0

레이블을 합성 값에 바인딩해야합니다 - 모델에서 몇 가지 값으로 구성됩니다. ValueConverter를 사용하려고 노력하고 있지만 ValueConverter에 객체 자체를 전달하는 방법을 알 수 없습니다. 여기 내 코드는 다음과 같습니다 XAML에서 : DetailsConverter.cs에서ValueConverter - 자기에 바인딩

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
     xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
     xmlns:local="clr-namespace:MyApp;assembly=MyApp" 
     x:Class="MyApp.SavedDetailsPage"> 
    <ContentPage.Resources> 
     <ResourceDictionary> 
      <local:DetailsConverter x:Key="detailsCvt" /> 
     </ResourceDictionary> 
    </ContentPage.Resources> 
    ... 
    <Label Text="{Binding ???, Converter={StaticResource detailsCvt}}" FontSize="Small" TextColor="Gray" /> 
    ... 

: '.'

class DetailsConverter : IValueConverter 
{ 
    object IValueConverter.Convert(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
     MyModel myModel = (MyModel)value; 
     return (myModel.FirstName + " " + myModel.LastName); 
    } 
    ... 

내가 사용 시도 자기에 구속력을 가졌지 만 그건 효과가 없었습니다.

XML 바인딩에서 'This'를 전달할 수 있도록 개체 자체에 대한 액세스 권한을 부여하는 MyModel에 .This 속성을 추가하여 주위를 둘러 보았습니다.하지만 이것이 최선의 방법인지는 확실하지 않습니다.

미리 감사드립니다.

+0

중 하나를 사용할 수 있습니다, 뷰 모델에 바인딩? MVVM 프레임 워크를 사용하고 있습니까? –

+0

페이지의 BindingContext는 어디에 설정합니까? –

+1

또 하나의 해결 방법은 모델을 구성하는 속성을 소개하는 것일 수도 있습니다. –

답변

2

당신은 당신의 BindingContext를 설정되는 방법은 다음 구문

{Binding} 
{Binding .} 
{Binding Path="."}