Im kırık Binding. Benim elde etmek istediğim davranış, CheckBox'un ViewModel'i (ve dolayısıyla Expander'ı da) etkilemesini sağlamaktır, ancak başka bir şekilde bağlı değildir.WPF Tek Yönlü 2 farklı WPF ViewModel bir CheckBox.IsChecked ve Expander.IsExpanded aynı özelliğe denetimleri bağlamak için çalışıyor
<Window x:Class="WpfApplication9.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">
<Expander IsExpanded="{Binding IsChecked, Mode=OneWay}">
<Expander.Header>
<CheckBox IsChecked="{Binding IsChecked}" Content="Is Checked"/>
</Expander.Header>
<TextBlock Text="Expanded!"/>
</Expander>
</Window>
ve Kod:
Şimdiusing System.ComponentModel;
using System.Windows;
namespace WpfApplication9
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataContext = new ViewModel();
}
}
public class ViewModel: INotifyPropertyChanged
{
private bool _isChecked;
public bool IsChecked
{
get { return _isChecked; }
set
{
_isChecked = value;
NotifyPropertyChange("IsChecked");
}
}
protected void NotifyPropertyChange(string PropertyName)
{
PropertyChanged(this, new PropertyChangedEventArgs(PropertyName));
}
public event PropertyChangedEventHandler PropertyChanged = delegate { };
}
}
benim sorunum, en kısa sürede genişletmek için Expander'da tıklayarak olarak/çöküşü İşte
Checkbox Checked -> ViewModel property set to frue -> Expander.Expand
Checkbox Unchecked -> ViewModel property set to false -> Expander.Collapse
Expander Expanded -> Nothing else affected
Expander Collapsed -> Nothing else affected
XAML var: şey gibi Bu, Bağlanma çalışmayı durdurur gibi görünüyor. Herkes bana bunun neden olduğunu açıklayabilir mi ve bunu nasıl başarabilirim? Şimdiden teşekkürler!
Başlıklarında Onay Kutusundaki en az 6 Genişletici ile bir görünüm oluşturuyorum. Çok fazla kodu ve hiç bir kod kullanmamayı tercih ediyorum çünkü görüşün esnekliğini azaltır. –
@HighCore Birden çok Genişletme/Onay Kutunuz varsa, bunlar için muhtemelen varsayılan bir stiliniz vardır ve Tıklat olayını stilde bir EventSetter olarak ayarlayabilirdiniz. Bu CheckBox ile ilişkili Expander'ı bulmak için görsel ağacında gezinmek için bir şey kullanırdım ve adlandırılmış değerleri kullanmanız gerekmeyecekti. – Rachel
@HighCore Güncellenmiş cevabımı görün. – Rachel