0

こんにちは、私は WPF が初めてで、データ バインディングとコード ビハインドを実行して、テキスト ボックスとボタンを有効または無効にする方法がわかりません。

以下の例でそれを機能させる方法を教えていただければ、私のプロジェクトで役立ちます。

XAML

<ComboBox Name="ComboBoxA"                  
          Margin="5"  
          SelectedIndex="0" SelectionChanged="ComboBoxA_SelectionChanged"  >
    <ComboBox.ItemsPanel>
        <ItemsPanelTemplate>
            <WrapPanel Orientation="Vertical" Height="Auto" Margin="5" />
        </ItemsPanelTemplate>
    </ComboBox.ItemsPanel>
    <ComboBoxItem Content="Option1" Width="72"  />
    <ComboBoxItem Content="Option2" Width="72" />
    <ComboBoxItem Content="Option3" Width="72" />
</ComboBox>

<TextBox Name="TextBoxA"
         Margin="5" 
         Width="200"   
         IsEnabled="{Binding TextBoxEnabled}" />

<Button Name="ButtonA"
        Content="Next" 
        HorizontalAlignment="left"                
        Margin="5"                 
        IsEnabled="{Binding ButtonEnabled} />

C#

private void ComboBoxA_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    TextBoxA = new TextBox();
    ButtonA = new Button();

    if (ComboBoxAfterProcessing.SelectedIndex == 0)
    {                    
        TextBoxA.IsEnabled = false;                    
        ButtonA.IsEnabled = false;
    }
    else if (ComboBoxAfterProcessing.SelectedIndex == 1)
    {                   
        TextBoxA.IsEnabled = true;
        ButtonA.IsEnabled = true;
    }
    else if (ComboBoxAfterProcessing.SelectedIndex == 2)
    {
        TextBoxA.IsEnabled = true;
        ButtonA.IsEnabled = true;
    }
}
4

2 に答える 2

0

テキストボックスとボタンの IsEnabe プロパティを Combox の SelectedIndex プロパティにバインドでき、ComboBoxA_SelectionChanged イベントに応答する必要はありません。SelectedIndex でボタンと textBox の IsEnabe を変更できるようにするには、バインディングにコンベターが必要です。たとえば、次のようになります。

于 2013-10-21T14:45:28.153 に答える