25

bir Datatemplate içinde verilere bağlamak için nasıl aşağıdaki basitleştirilmiş Örnek sahiptir:bir ContentControl

<Window x:Class="TemplateBinding.MainWindow" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      Title="MainWindow" Height="350" Width="525"> 
     <Window.Resources> 
      <ResourceDictionary> 
       <ResourceDictionary.MergedDictionaries> 
        <ResourceDictionary 
          Source="pack://application:,,,/TemplateBinding;component/PersonTemplate.xaml" /> 
       </ResourceDictionary.MergedDictionaries> 
      </ResourceDictionary> 
     </Window.Resources> 
     <Grid> 
      <ContentControl ContentTemplate="{StaticResource PersonTemplate}" /> 
     </Grid> 
    </Window> 

olarak: Ayrı bir ResourceDictionary dosyada benim DataTemplate olarak

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 

     <DataTemplate x:Key="PersonTemplate"> 
      <Border Width="100" Height="100" Background="RosyBrown"> 
       <TextBlock Text="{Binding Path=FirstName}" VerticalAlignment="Center" TextAlignment="Center"/> 
      </Border> 
     </DataTemplate> 

    </ResourceDictionary> 

.

DataContext'imi MainWindow'umun Construcor'una ayarlıyorum ve yalnızca şu şekilde görüntüleyerek doğruladım: <ContentControl Grid.Row="1" Content="{Binding FirstName}"/>. ListBox ile bir DataTemplate kullandığım başka bir senaryoda, DataTemplate'de tam olarak aynı şekilde Bağlama işlemini yapıyorum ve sadece çalışır.

VeriTemplate'in, boyut ve arka plan rengini doğru şekilde gösterdiği için ciltleme dışında çalıştığını biliyorum.

Neyi yanlış yapıyorum? DataTemplate'imdeki Bağlama nasıl görünmeli?

cevap

54

Kontrolden İçerik olarak ContentControl ait DataContext'i ayarlayacaktır ContentControl

<ContentControl Content="{Binding}" ContentTemplate="{StaticResource PersonTemplate}" /> 

Bu, Content -property bağlamak gerekir.

Yalnızca ContentTemplate özelliğinin ayarlanması yeterli değildir. ContentControl, DataContext öğesini içerik olarak örtük olarak kullanmaz.

+1

Bu belgedeki belgeleriniz var mı? Sorunumu tamamen çözdü, ancak başka bir sürü var mı diye merak ediyorum. –

İlgili konular