Autor Beitrag
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 3976
Erhaltene Danke: 813

Win7
C++, C# (VS 2015/17)
BeitragVerfasst: Mi 23.11.16 13:43 
Doch ist sie, aber als Teil des DataTemplate (und darauf kann man nicht direkt von außen zugreifen, weil es sich eben nur um eine Vorlage handelt) - WPF funktioniert ein bißchen anders als WinForms.

@csharpuser1: du solltest dich mal in MVVM einlesen - insbesondere DataBinding.

In deinem Fall also:
ausblenden XML-Daten
1:
<ComboBox x:Name="ComboBox_Test" ItemsSource="{Binding Path=Tests}" IsEnabled="{Binding Path=IsComboBoxEnabled}"/>					

und im ViewModel eine entsprechende Eigenschaft bereitstellen, welche dann wiederum auf die an IsChecked gebundene Eigenschaft zugreift:
ausblenden C#-Quelltext
1:
2:
3:
4:
public bool IsComboBoxEnabled
{
  get { return !IsCheckBoxChecked; }
}

Das direkte Benutzen von UI-Ereignissen wird dabei vermieden.
Frühlingsrolle
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2274
Erhaltene Danke: 419

[Win NT] 5.1 x86 6.1 x64
[Delphi] 7 PE, 2006, 10.1 Starter, Lazarus - [C#] VS Exp 2012 - [Android API 15] VS Com 2015, Eclipse, AIDE - [C++] Builder 10.1
BeitragVerfasst: Mi 23.11.16 13:47 
Also doch die Optik. Japps, WPF ist scheinbar etwas für jene, die eine einfache Angelegenheit, unglaublich kompliziert umsetzen wollen.
Wäre das Template nicht dazwischen, könnte man es so machen:
ausblenden xaml
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
<Window x:Class="WpfApplication1.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">
    <Grid>
        <StackPanel Height="148" HorizontalAlignment="Left" Margin="72,19,0,0" Name="stackPanel1" VerticalAlignment="Top" Width="301">
            <CheckBox Content="CheckBox" Height="16" Name="checkBox1" Checked="checkBox1_Checked" Unchecked="checkBox1_Checked" />
            <ComboBox Height="32" Name="comboBox1" Width="137" />
        </StackPanel>
    </Grid>
</Window>

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
namespace WpfApplication1
{
    /// <summary>
    /// Interaktionslogik für MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void checkBox1_Checked(object sender, RoutedEventArgs e)
        {
            comboBox1.IsEnabled = !(bool)checkBox1.IsChecked;
        }
    }
}

_________________
„Politicians are put there to give you the idea that you have freedom of choice. You don’t. You have no choice. You have owners. They own you. They own everything." (George Denis Patrick Carlin)
csharpuser1 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 51



BeitragVerfasst: Mi 23.11.16 15:05 
Jau das mit dem DataBinding war mein Fehler!