문제

여러 페이지에 사용하는 데이터 템플릿이 있습니다. 데이터 템플릿에는 몇 개의 버튼이 포함되어 있습니다. 트리거를 통해이 버튼의 일부를 숨기고 싶습니다 (이 DataTemplate을 사용하는 페이지 에서이 버튼의 ISELAINAIBED 속성을 설정 함).

다시 말해, 스타일 트리거/세터로 설정하고 싶습니다.

나는 충분히 분명하기를 바랍니다. 자세한 내용은 의견을 남겨주세요.

모든 토론은 정말 감사하겠습니다! 미리 감사드립니다.

도움이 되었습니까?

해결책

기본적으로 이것은 데이터 emplate에 사용하는 객체에 따라 다릅니다. 일부 buttonyisenabled 등을 사용하는 대신. 도메인 모델에 더 잘 맞는 단어를 사용하십시오.

예를 들어 고객 목록이 있으며 일부 고객은 할인 된 제품을 구매할 수 있습니다. 그런 다음 CanpurchasedIscountedProducts라는 고객에게 속성을 추가하고 DataTemplate에서 해당 속성을 사용하십시오.

<DataTemplate TargetType="{x:Type local:Customer}">
  <!-- Other Items -->
  <Button Content="Purchase Discounted Products" x:Name="discounts" Visibility="Hidden" />
  <DataTemplate.Triggers>
    <DataTrigger Binding="{Binding CanPurchaseDiscountedProducts}" Value="True">
      <Setter TargetName="discounts" Property="Visibility" Value="Visible"/>
    </DataTrigger>
  </DataTemplate.Triggers>
</DataTemplate>

다른 팁

WPF 데이터 템플릿은 특정 객체 유형의보기입니다 ... ObjectTypEx 인스턴스를 보려는 방법. 데이터 템플릿은 기본 인스턴스의 속성에 바인딩 할 수 있습니다.

따라서 인스턴스에 buttonxisenabled 속성이있는 경우 해당 버튼의 가시성 속성을 인스턴스 속성에 바인딩 할 수 있습니다. 버튼은 기본 객체의 값에 따라 표시되거나 숨겨집니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top