'daki farklı bir koleksiyona bağlı olan bir ağaca bağlı olan bir kılavuza nasıl bağlanır Tamam, bu açıklamak zor. Ağacı olan ve bir formu olan bir manzaram var. Ağaç, 2 farklı gözlemlenebilir koleksiyona bağlanmıştır.Wpf
<TreeView FontFamily="Calibri" FontSize="16" Name="tree" Margin="3" Grid.Row="1" Grid.Column="0" Height="950" VerticalAlignment="Top" Grid.ColumnSpan="2"
ItemsSource="{Binding Path=Org, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" SelectedItemChanged="tree_SelectedItemChanged" >
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Path=Org_Sredstva}">
<TextBlock Text="{Binding Path=Organizacije_Naziv}"/>
<HierarchicalDataTemplate.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Ossr_Naziv}"/>
</DataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
Şimdi ağacın yanında bir form var. Ve formun, ağacın seçili olmasına bağlı olarak değişen üçüncü gözlemlenebilir bir koleksiyona bağlı olması gerekiyor. Eğer bağlama görebileceğiniz gibi
<Grid Grid.Row="2" Grid.Column="2" Margin="5" DataContext="{Binding ElementName=tree, Path=SelectedItem}">
farklı gözlemlenebilir koleksiyonu bağlı ağaca etmektir.
<extToolkit:WatermarkTextBox x:Name="RadnoVrijeme" Grid.Row="1"
Grid.Column="1"
Grid.ColumnSpan="2"
HorizontalAlignment="Left"
VerticalAlignment="Bottom"
Width="100"
Height="25"
Padding="3"
Margin="3"
AcceptsReturn="True"
Validation.ErrorTemplate="{StaticResource ValidationTemplate}"
Validation.Error="Validation_Error">
<extToolkit:WatermarkTextBox.Watermark>
<StackPanel Orientation="Horizontal">
<TextBox Text="Radno Vrijeme" Margin="4,2,2,0" FontWeight="Regular" Foreground="Silver" BorderThickness="0"/>
</StackPanel>
</extToolkit:WatermarkTextBox.Watermark>
<extToolkit:WatermarkTextBox.Text>
<Binding Path="Opr_RadnoVrijeme" UpdateSourceTrigger="PropertyChanged" NotifyOnValidationError="True">
<Binding.ValidationRules>
<validation:InputLenghtRule MinLength="10" MaxLength="250" ValidatesOnTargetUpdated="True"/>
</Binding.ValidationRules>
</Binding>
</extToolkit:WatermarkTextBox.Text>
</extToolkit:WatermarkTextBox>
Bu metin kutusu olduğunu ve üçüncü koleksiyonu bir özelliğine bağlı ama bu koleksiyon her yerde ItemsSource set asla çünkü açıkça çalışmaz. codebehind her metin kutusu ayarlamak için
buldum geçici çözüm tek tek burada denklemin sol tarafı metin kutusu ve sağ tarafta text özelliğini ise
this.View.RadnoVrijeme.Text = opr.Opr_RadnoVrijeme;
collection.property olmasıdır. Bu işe yarıyor ama hoşlanmıyorum ve bunu gerçekten bağlamanın bir yolu olduğunu mu umuyordum?
Evet ama Seçilen öğe olduğunu özelliği nedeniyle içermiyor onun Farklı bir sınıf için farklı bir koleksiyon. Ayrıca Model View sunum modeline sahip CastleActiveRecords uygulamasını veya en azından denedim. Inotify'ı uyguluyorum. Bkz bu BindingExpression yolu hatasının benim sorunu tür: 'Opr_Povrsina' özelliği 'nesne' 'bulunmayan Organizacije' Bu benim çıkış hatası ve Organizacije Opremljenosti tutun yapar nesne Opr_Povrsina özelliğini tutmaz nesne olduğu ama ona nasıl bağlanacağımı bilmiyorum çünkü ağaç için Organizacije'ye de ihtiyacım var. –
Burada 2 koleksiyonumda Property Change'i kullanabiliyorum ama benim için çalışmıyor, yanlış bir şey yapıyorum ... public ObservableCollection Oprema {{return _oprema; } { _oprema = value; OnPropertyChanged ("Oprema"); } } kamu ObservableCollection Kuruluş { olsun {return _organizacije; } set { _organizacije = value; OnPropertyChanged ("Org"); } } –
Sınıfların hiyerarşisini göstermediniz, ancak 'SelecteItem' metni görüntülemek için kullanılan bilgileri sağlamalı, sonra ilk yaklaşımı (ilgili özellik için yükselen bildirim) kullanarak hangi değerin görüntüleneceğine karar vermek için kullanılabilir. "CastelActiveRecords" (MVP?) Nedir bilmiyorum, ama wpf çoğu için MVVM ile ilişkilidir, ViewModel genellikle "INotifyPropertyChanged" uygular. ViewModel'lerinizi gösterebilir misiniz? Ve mevcut yönteminiz de metin değerini ayarlamanız için lütfen. – Sinatr