У меня есть ListView в Windows Form, с которым я связываю список объектов при создании формы. То, что я хотел бы сделать, - это щелкнуть кнопкой мыши по элементам, которые были созданы, и изменить их свойство IsEnabled на false. Я пробовал два метода, и ни один из них не был особенно успешным. Может ли кто-нибудь помочь исправить эти проблемы и/или предложить альтернативный метод?Looping через WPF ListView DateTemplate Items
Моего ListView XAML
<ListView Margin="6" Name="myListView" ItemsSource="{Binding Path=.}">
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="10"/>
<ColumnDefinition Width="350"/>
<ColumnDefinition Width="20"/>
<ColumnDefinition Width="350"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="30" />
<RowDefinition Height="30" />
<RowDefinition Height="30" />
</Grid.RowDefinitions>
<TextBlock Name="ItemNameTextBlock" Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="4" VerticalAlignment="Center" Text="{Binding Path=ItemName}" />
<CheckBox Name="Action1CheckBox" Grid.Row="1" Grid.Column="1" Content="Action1" IsChecked="True" />
<CheckBox Name="Action2CheckBox" Grid.Row="1" Grid.Column="3" Content="Action2" IsChecked="True" />
<TextBox Height="23" Name="MyInputTextBox" Grid.Row="2" Grid.Column="1" Margin="2,0,2,0" VerticalAlignment="Top" Width="25" Text="{Binding Path=DataValue}" />
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Цель: На нажатии кнопки (кнопки переключения несвязанного) отключить CheckBoxes и TextBox
Попытка 1: Это не сработало, то товары являются привязкой к данным и я не могу понять, как добраться до самих элементов управления, чтобы сделать что-то подобное. Возможно ли это?
foreach (var item in ReleaseDeployProcessListView.Items)
{
((CheckBox)item.FindControl("Action1CheckBox")).IsEnabled = false;
}
Попытка 2: Я добавил общественную собственность «IsFormElementsEnabled» в форме и на кнопку мыши установите это значение ложь. Но я не мог понять, как/если/что мне нужно сделать, чтобы связать это с элементами. Я попробовал IsEnabled = "{Binding Path = IsFormElementsEnabled} (который не работает, поскольку он привязан к объектам и не является участником этих объектов), и я попробовал IsEnabled =" {Binding Path = this.IsFormElementsEnabled} (что doesn похоже, не работает)
Да, это, безусловно, работать, я действительно надеюсь, что я мог бы получить одну из двух другихов механизмы для работы. – ChrisHDog
См. Мой новый ответ;) Хотя я по-прежнему предпочитаю этот метод, хотя :) – Arcturus