가 주어 제어 :조건부로드
<StackPanel>
<View:ArcController x:Name="control1" Visibility="{Binding Path=CanShowDateControl, Converter={StaticResource bool2VisibilityConverter}}" />
<my1:DateLabelView x:Name="control2" DataContext="{Binding Path=DateLabelViewModel}" Visibility="{Binding ElementName=ctrlTableToolbar, Path=DataContext.IsDateReadOnly, Converter={StaticResource bool2VisibilityConverter}}" />
</StackPanel>
나는 StackPanel의 내부에 두 개의 컨트롤 (제어 1, 및 control2)을 가지고 있고, 한 번에 내가 컨트롤의 하나를 보여주고 싶어요. 코드에서 볼 수 있듯이 컨트롤의 가시성은 "IsDateReadOnly"및 "CanShowDateControl"에 의해 결정됩니다. 그리고 내 viewmodel 논리에 따라 ... CanShowDateControl =! IsReadOnly.
그래서 한 번에 두 컨트롤 중 하나만 표시합니다.
질문 : 내 문제는, 한 번에 하나의 컨트롤 만 표시하고 있지만 내 xaml은 두 컨트롤의 인스턴스를 만듭니다. 내가 보여주는 오전 컨트롤의 인스턴스를 만들 수 있습니까?
은 보내기 그 논리를 내 뷰 모델에있다, 그래서1) 나는 바인딩을 사용/숨기기를 보여주고 싶어요. 2)이 두 컨트롤을 하나의 래퍼 컨트롤 안에 유지할 수 있습니다. 이후 나는 다른 장소에서 그것을 사용하고 있습니다.
관심을 가져 주셔서 감사합니다.
두 컨트롤의 인스턴스를 많이 만들면 문제가 발생합니까? – ChrisF
@ChrisF :이 컨트롤의 인스턴스를 여러 개 만들면이 컨트롤이 메모리를 적게 소비하도록 만들면 메모리 사용이 상당히 최적화됩니다. –