我遇到了一个我不明白的问题。我的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的初学者:)
感谢您的帮助!
答案 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>