Wie binden Sie ein WPF-Steuerelement, um den code hinter?

Habe ich diesen XAML-Code:

<Window x:Class="WpfBindToCodeBehind.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300"
    Loaded="Window_Loaded">
    <StackPanel Orientation="Vertical">
        <Button Name="ToggleExpand" Click="ToggleExpand_Click">Toggle Expander</Button>
        <Expander Name="Expander"
                  Header="Don't click me, click the button!"
                  IsExpanded="{Binding RelativeSource={RelativeSource Self},Path=MayExpand}">
            <TextBlock Text="{Binding}"/>
        </Expander>
    </StackPanel>
</Window>

Dies ist der code hinter:

public partial class Window1 : Window,INotifyPropertyChanged 
    {
        public event PropertyChangedEventHandler PropertyChanged;

        public Window1()
        {
            InitializeComponent();
        }

        private void ToggleExpand_Click(object sender, RoutedEventArgs e)
        {
            MayExpand = !mayExpand;
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            Expander.DataContext = "Show me";
        }

        private bool mayExpand;
        public bool MayExpand
        {
            get { return mayExpand; }
            set
            {
                mayExpand = value;
                if (PropertyChanged != null)
                    PropertyChanged(this, new PropertyChangedEventArgs("MayExpand"));
            }
        }
    }

Den Verbindlichen Ausdruck für die IsExpanded-Eigenschaft nicht funktioniert. Dieser code ist eine Vereinfachung, in der Realität der expander ist die Bindung bereits durch die dateninhalts einer übergeordneten Steuerung.
Wie kann ich binden die IsExpanded-Eigenschaft an eine Eigenschaft der code hinter?
Kann ich binden Sie es auf das Ergebnis einer Methode in der code-behind?

Sie kann nicht binden an Methoden direkt, gleichen Klasse oder nicht. Sie haben zu Kapseln Methode als Eigenschaft nennen, oder verwenden Sie einen Wert converter, oder sonst arbeiten, um die Beschränkung.

InformationsquelleAutor Dabblernl | 2009-08-20

Schreibe einen Kommentar