属性“VisualTree”只能设置一次

时间:2016-07-29 16:14:56

标签: c# visual-studio xaml uwp

我遇到了一个我不明白的问题。我的Visual Studio给了我2个错误:

  

属性“VisualTree”只能设置一次。

     

属性'VisualTree'设置不止一次。

这是我的XAML:

    <ItemsControl x:Name="SettingsListItemControl">
    <TextBlock Text="Settings" FontSize="24" />
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <StackPanel HorizontalAlignment="Left" Height="640" VerticalAlignment="Top" Width="360" />
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.ItemTemplate>
        <DataTemplate x:Name="SettingItemTemplate" x:DataType="vm:SettingItemViewModel">
            <TextBlock Text="{x:Bind Title}"/>
            <ToggleSwitch IsOn="{x:Bind IsActive}"/>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

我不知道为什么我不能绑定IsActive,它在这里给我一个错误... 好像他也有DataTemplate的问题。 我的问题看起来非常基本,我是XAML和DataBinding的初学者:)

感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

在你的ItemTemplate中,你需要一个可以容纳孩子的TextBlock / ToggleSwitch的父面板,将它们包装在StackPanel或Grid中。错误消失了。 :)

所以换掉这样的东西;

<ItemsControl.ItemTemplate>
   <DataTemplate x:Name="SettingItemTemplate" x:DataType="vm:SettingItemViewModel">
      <StackPanel>
         <TextBlock Text="{x:Bind Title}"/>
         <ToggleSwitch IsOn="{x:Bind IsActive}"/>
      </StackPanel>
   </DataTemplate>
</ItemsControl.ItemTemplate>