我有一个Windows窗体中的ListView,我绑定的对象列表创建窗体。我想要做的是在按钮点击循环中创建的项目,并将其IsEnabled属性更改为false。我尝试过两种方法,但都不是特别成功。任何人都可以帮助解决这些问题和/或提出一种替代方法吗?通过WPF循环ListView DateTemplate项目
我的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>
目标:按下按钮(一个不相关的按钮)禁用复选框和文本框
尝试1: 这并没有工作,项目是数据绑定项目和我无法找到一种方法来控制自己做这样的事情。这甚至有可能吗?
foreach (var item in ReleaseDeployProcessListView.Items)
{
((CheckBox)item.FindControl("Action1CheckBox")).IsEnabled = false;
}
尝试2: 我添加了一个公共财产“IsFormElementsEnabled”的形式和按钮点击这个值设置为false。但我无法弄清楚如何/如果/我需要做什么来将它绑定到物品上。我尝试过IsEnabled =“{Binding Path = IsFormElementsEnabled}(它不能工作,因为它绑定到对象,并且不是那些obects的派对),我尝试了IsEnabled =”{Binding Path = this.IsFormElementsEnabled}看起来也不行)
是的,这肯定会工作,我真的很希望我能得到另外两个中的一个机制虽然工作。 – ChrisHDog 2009-08-24 09:29:35
看到我的新答案;)虽然我仍然喜欢这种方法:) – Arcturus 2009-08-24 11:06:11