2013-06-21 3 views
1

그래서 내 앱의 메인 페이지에는 2 개의 행이있는 격자가 있습니다. 첫 번째 행은 제목 등입니다. 두 번째 행은 일련의 데이터를 모아 놓은 gridview입니다.gridview와 텍스트 사이를 전환하는 격자 행을 바인딩합니다.

나는 사용자가 로그인 한 경우 만 검사, 부울 또는 뭔가 내 주요 그리드의 두 번째 행을 결합하고 싶습니다.

사용자가 로그인하지 않은 경우, 두 번째 행 것이다에만 표시 텍스트 : "Please Log In"

사용자가 로그인하면 데이터가있는 Gridview가 채워집니다. 그것이 바로 지금이기 때문에

는, 내 코드는 다음 첫 번째 행의 두 행 그리드 및 gridview에

<Grid Style="{StaticResource LayoutRootStyle}"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="140"/> 
     <RowDefinition Height="*"/> 
    </Grid.RowDefinitions> 

    <GridView 
     x:Name="itemGridView" 
     AutomationProperties.AutomationId="ItemGridView" 
     AutomationProperties.Name="Grouped Items" 
     Grid.RowSpan="2" 
     Padding="116,137,40,46" 
     ItemsSource="{Binding Source={StaticResource groupedItemsViewSource}}" 
     ItemTemplate="{StaticResource Standard500x130ItemTemplate}" 
     SelectionMode="None" 
     IsSwipeEnabled="false" 
     IsItemClickEnabled="True" 
     ItemClick="ItemView_ItemClick"> 

그래서 다시 데이터

<CollectionViewSource 
x:Name="groupedItemsViewSource" 
Source="{Binding data}" 
IsSourceGrouped="true" 
ItemsPath="information" 
d:Source="{Binding data, Source={d:DesignInstance IsDesignTimeCreatable=True, Type=local:HomeDesignData}}"/> 

와 collectionviewsource있다 난 그냥 간단한 텍스트에 대한 전적으로 사용자가 로그인되어 있는지 확인 부울 또는 무언가에 바인딩 된 바운드 gridview 밖으로 전환하는 방법을 찾고 싶습니다

어떤 inp에 미리 감사드립니다 ut

답변

0

이 작업을 수행하는 가장 쉬운 방법은 GridView에 그리드를 오버레이하여 사용자가 로그인하지 않은 경우에만 표시하는 것입니다.이를 위해 BooleanToVisibilityValueConverter를 활용할 수 있습니다.

<Grid Style="{StaticResource LayoutRootStyle}"> 
    <Grid.Resources> 
     <converters:BooleanToVisibilityConverter x:Key="BoolToVis"/> 
    </Grid.Resources> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="140"/> 
     <RowDefinition Height="*"/> 
    </Grid.RowDefinitions> 

    <GridView 
     x:Name="itemGridView" 
     Grid.Row="2" 
     ... 
    /> 
    <Grid Grid.Row="2" Background="Black" 
      Visibility="{Binding IsLoggedIn, Converter={StaticResource BoolToVis}}"> <!-- The Grid control will fill the entire row 
     <TextBlock Text="Log in dummy!" /> 
    </Grid> 
</Grid> 
+0

좋은 해결책 인 것 같습니다. 이미 가시성 변환기를 사용하고 있지만 어떻게 호출해야하는지 모르겠습니다. 너 좀 도와 줄 수있어? \t 공공 봉인 클래스 BooleanToVisibilityConverter : IValueConverter \t { \t \t 공공 객체 변환 (개체 값 유형 TARGETTYPE, 개체 매개 변수, 문자열 언어) { \t \t \t 반환 \t \t (값이 BOOL 인 && (부울) 값) ? Visibility.Visible : Visibility.Collapsed; \t \t} \t \t 공개 오브젝트 ConvertBack (개체 값 유형 TARGETTYPE, 오브젝트 파라미터 문자열 언어) { \t \t \t 반환 값은 가시성 \t \t이다 && (가시성) 값 == Visibility.Visible; \t \t \t –

+0

요소의 리소스에 변환기를 추가해야합니다. 그리드 리소스의 변환기를 포함하는 업데이트 된 답변보기 –

+0

감사합니다. –

관련 문제