我遇到了一个我不明白的问题。我的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的初学者:)

感谢帮助!

最佳答案

在您的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>

关于c# - 属性“VisualTree”只能设置一次,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38663281/

10-15 10:03