2016-07-29 172 views
0

私にはわからない問題があります。私のVisual Studioは次の2つのエラーを表示します。プロパティ "VisualTree"は一度しか設定できません

プロパティ "VisualTree"は一度しか設定できません。

プロパティ 'VisualTree'が複数回設定されています。

これは私のXAMLである:彼はまた、DataTemplateのに問題があるよう

<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をバインドすることはできませんなぜ私はそれが私にここでエラーを与え、知らない... は思えます。 私の質問はかなり基本的なようですが、XAMLとデータバインディングに関しては初心者です:)

ありがとうございました!

答えて

4

ItemTemplateには、子を保持したり、StackPanelやGridなどでラップしたりできるTextBlock/ToggleSwitchの親パネルが必要です。エラーは消えました。 :)

だから、このようなもののためにそれを交換してください;

<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> 
+0

グリッドは全体のスペースを埋めるので、StackPanelは基本となるアイテムのスペースを取るため、グリッドオーバースタックパネルが望ましい。 – AVK

関連する問題