属性“ VisualTree”只能设置一次

Ska*_*ayd 1 c# xaml visual-studio 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>
Run Code Online (Sandbox Code Playgroud)

我不知道为什么我不能绑定IsActive,这给我一个错误。似乎他也有DataTemplate问题。我的问题似乎很基本,我是XAML和DataBinding的初学者:)

感谢帮助!

Chr*_* W. 5

在您的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>
Run Code Online (Sandbox Code Playgroud)