Почему ItemsControl не использует мой ItemTemplate?

Я могу использовать ItemTemplate в ItemsControl для отображения элементов в определенном формате. Однако, если один из элементов в ItemsControl оказывается, скажем, TextBox, этот TextBox визуализируется, а не является экземпляром ItemsTemplate. Насколько я могу судить, это верно для любого FrameworkElement. Это предполагаемое поведение для ItemsControl, или я что-то делаю неправильно?

Пример:

<ItemsControl>
  <ItemsControl.ItemTemplate>
    <DataTemplate>
      <Grid Margin="5">
        <Rectangle Fill="Blue" Height="20" Width="20" />
      </Grid>
    </DataTemplate>
  </ItemsControl.ItemTemplate>
  <ItemsControl.Items>
    <sys:Object />
    <TextBox />
    <sys:Object />
    <Rectangle Fill="Red" Height="20" Width="20" />
  </ItemsControl.Items>
</ItemsControl>

Я ожидал, что это отобразит четыре синих прямоугольника. Я думал, что каждый раз, когда определяется ItemTemplate, каждый элемент в коллекции отображается как экземпляр шаблона. Однако в этом случае отображается следующее: синий прямоугольник, за которым следует TextBox, за которым следует синий прямоугольник, за которым следует красный прямоугольник. m.end_time + = timedelta (секунды = 34) m.save () ...

Моя модель выглядит так

class MyModel(models.Model):
    end_time = DateTimeField()

, и это то, чего я пытаюсь достичь:

m=MyModel.objects.get(pk=1)
m.end_time += timedelta(seconds=34)
m.save()

, но я хочу сделать это с помощью update (), чтобы избежать состояния гонки:

MyModel.objects.filter(pk=1).update(end_time=F('end_time')+timedelta(seconds=34))

но это не так ' т работать. Возможно ли это с помощью django ORM или это единственный вариант - необработанный SQL?

1
задан Cœur 2 May 2018 в 07:54
поделиться