2014-09-05 32 views
0

我想要绑定在DataTemplate(在列表框中使用)到我的ViewModel上的属性的复选框的可见性。我想显示和隐藏所有复选框的一个属性。xaml windows phone 8.1从模板页面绑定

毕竟我找不到解决方案。这是迄今为止的非工作代码。

<DataTemplate x:Key="GroupTemplate"> 
    <Grid > 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="40"/> 
      <ColumnDefinition Width="Auto"/> 
     </Grid.ColumnDefinitions> 
     <CheckBox Visibility="{Binding CheckboxVisible, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BooleanToVisibilityConverter}}" Grid.Column="0" /> 
     <TextBlock Text="{Binding GroupName}" Grid.Column="1"/> 
    </Grid> 
</DataTemplate> 

public class GroupListViewModel : ViewModelBase 
{ 
    private bool _checkboxVisible; 
    public bool CheckboxVisible 
    { 
     get 
     { 
      return _checkboxVisible; 
     } 
     set 
     { 
      Set(() => CheckboxVisible, ref _checkboxVisible, value); 
     } 
    }    
    // ... 
} 

回答

0

是GroupListViewModel具有此数据模板的项目控制的DataContext的?然后,您可以向物品控件添加名称并按名称访问它,例如:

<GridView x:Name="items"> 
... 
<CheckBox Visibility="{Binding DataContext.CheckboxVisible, ElementName=items, Converter={StaticResource BooleanToVisibilityConverter}}" Grid.Column="0"/
+0

GroupListViewModel是页面的DataContext。 – eloew 2014-09-05 12:46:52

+0

然后我的解决方案应该工作,因为项目控件将从页面派生它的DataContext。或者,您可以给页面控件一个名称,然后访问它 – Jogy 2014-09-05 13:03:33

+0

您的解决方案工作。谢谢您的帮助。 – eloew 2014-09-06 08:00:09