【发布时间】:2017-07-31 17:33:13
【问题描述】:
我有一个带有文本块的 Listview 来填充列表,类内部是属性结果,如果我的软件能够解析文件,我会根据该属性设置文本块的样式,但另外我想这样做项目不可选择。
问题:
如何将 ItemcontainerStyle 属性 IsEnabled 绑定到集合的属性?
我试过了,还是不行:
<Setter Property="IsEnabled" Value="{Binding Path=ActionResult.Result ??? doesnt work }"/>
我当前的代码:
<ListView Grid.Column="0" ItemsSource="{Binding Files}" SelectedItem="{Binding SelectedFile}">
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="IsEnabled" Value="{Binding Path=ActionResult.Result ??? doesnt work }"/>
</Style>
</ListBox.ItemContainerStyle>
<ListView.ItemTemplate>
<DataTemplate DataType="{x:Type model:ActionResult}">
<TextBlock Text="{Binding Path=Name}">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Foreground" Value="Black" />
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Result}" Value="False">
<Setter Property="Foreground" Value="LightGray" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
更新: 型号:
public class ActionResult
{
public string Name { get; set; }
public bool Result { get; set; }
public object Content { get; set; }
public string Exceptionmessage { get; set; }
}
Files 是 ActionResult 类型的 Observablecollection
Files = new ObservableCollection<Actionresult>
下面的帖子效果很好,但请看我下面的评论。
【问题讨论】:
-
Files 集合的类型是什么,ActionResult 属性在哪里定义?它的类型是什么?