programing

데이터 바인딩에서 두 가지 속성을 결합할 수 있습니까?

lastcode 2023. 5. 2. 22:44
반응형

데이터 바인딩에서 두 가지 속성을 결합할 수 있습니까?

결합식에서 두 속성을 함께 결합할 수 있습니까?변환기 없이 또는 두 개의 텍스트 블록을 작성하고 개별적으로 설정하지 않고 가능합니까?

보여주고 싶으면 말해요.FirstName그리고.LastName단번에TextBlock그러면 다음과 같이 할 수 있습니다.

<TextBlock>
     <Run Text="{Binding FirstName}" />
     <Run Text="   " /> <!-- space -->
     <Run Text="{Binding LastName}" />
</TextBlock>

이제, 텍스트 블록의Text재산은 다음과 같습니다."Sachin Tendulkar"다음과 같은 경우 표시됩니다.

FirstName = Sachin
LastName  = Tendulkar
<TextBlock.Text>
   <MultiBinding StringFormat="{}{0} , {1}">
     <Binding Path="data1" />
     <Binding Path="data2" />
    </MultiBinding>
</TextBlock.Text>

data1 및 data2는 바인딩된 문자열 속성입니다.

알파 마우스가 멀티바인딩이 즉시 작동하지 않을 것이라고 제안한 것처럼, 하지만 이 남자는 다음과 같은 도움이 될 수 있는 무언가를 함께 던졌습니다.

http://www.olsonsoft.com/blogs/stefanolson/post/Improvements-to-Silverlight-Multi-binding-support.aspx

만약 그것이 약간 부정적으로 보인다면, 바인딩 메커니즘에 대한 도우미로서 당신의 객체에 결합된 값 속성을 넣는 것을 시도해 볼 수 있습니다.

public string FullName {
   get { return this.FirstName + " " + this.LastName; }
}

WPF에서는 MultiBinding 및 StringFormat의 도움을 받아 가능합니다.하지만 안타깝게도 실버라이트에서는 그렇지 않습니다.

문자열을 추가해야 하는 경우 해당 문자열을 사용해 보십시오.윈도우 폰에서 텍스트를 바인딩한 후 "%"를 추가합니다.

<TextBlock Text="{Binding Path=clouds.all, StringFormat=\{0\}%}"/>

연결을 수행하는 게터를 사용하여 새 속성을 추가할 수 있습니다.

있다고 하시오FirstName그리고.LastName특성.그런 다음 다음 다음을 정의할 수 있습니다.Name속성은 다음과 같습니다.

public string Name { get { return FirstName + " " + LastName; } }

이렇게 하면 잘 작동하지만 읽기 전용 속성에 대해 양방향 바인딩을 수행할 수 없습니다.또한 원본 속성의 설정자에서 연결된 속성에 대한 속성 변경 알림을 구현할 수도 있습니다.

언급URL : https://stackoverflow.com/questions/4325453/can-we-concat-two-properties-in-data-binding

반응형