2010-11-16 5 views
0

Так что теперь, когда я могу получить доступ к элементам управления, скрытым внутри вложенных наборов данных, кажется, что я не могу изменить их значения. Например у меня есть код (предоставленный мне любезен член переполнения стека)WPF Изменение элементов управления в шаблоне данных?

<Grid Name="mainGrid"> 
    <Grid.Resources> 
    <DataTemplate x:Key="frontTemplate" > 
     <StackPanel x:Name="noWork"> 
      <Image Source="Images/1.png" Stretch="Fill" Width="72" Height="96" x:Name="FrontFace" HorizontalAlignment="Left" VerticalAlignment="Top"></Image> 
     </StackPanel> 
    </DataTemplate> 

    <DataTemplate x:Key="flipItemTemplate"> 
     <Grid Width="200" Height="200"> 

      <Border x:Name="frontHost" Background="Transparent"> 
       <ContentPresenter Name="contentPresenter" Content="{Binding}" ContentTemplate="{StaticResource frontTemplate}" /> 
      </Border> 
     </Grid> 
    </DataTemplate> 
    </Grid.Resources> 
</Grid> 

И хотя я могу получить к изображению в этом втором шаблоне (frontFace) я не могу получить источник для изменения. Я могу получить новое растровое изображение и загрузить его без ошибок, но изображение не изменится. Если я поставлю элемент управления изображением в XAML за пределами datatemplate и загружаю его с моим растровым кодом там, он отлично работает. Это заставляет меня думать, что шаблон не может перерисовываться после его применения ... НО Я не могу получить доступ к его внутренним элементам до тех пор, пока он не будет применен ... так как я могу динамически настроить элементы в шаблон до его применения?

ответ

0

дубликаты его содержание. Вы обращаетесь к элементу Image вашего шаблона, а не к инстанцированному в презентаторе контента.

+0

Так как бы я установил содержимое шаблона ПЕРЕД тем, как он будет дублироваться/визуализироваться? это моя проблема .. курица и яйцо вроде сделки. но, насколько я знаю, вы не можете получить доступ к элементу в шаблоне до его применения, потому что визуальное дерево еще не создано, верно? – Dan

+0

Привязать 'Source' вашего элемента' Image' к свойству объекта данных. Свойство должно быть «ImageSource» или конвертируемым в «ImageSource» с помощью конвертера. –

+0

И таким образом при загрузке я могу манипулировать объектом данных, который, поскольку его привязка, будет манипулировать элементами в шаблоне - ОК, я дам этот снимок ... – Dan

Смежные вопросы