2 回答
TA贡献1785条经验 获得超8个赞
您可以利用PreviousData RelativeSource 将为null集合的第一个元素返回这一事实。知道您可以将DataTrigger添加到 DataTemplate 以将其IsEnabled属性设置TextBox为 false。
这是ItemTemplate带有PreviousData绑定的简化版本:
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBox x:Name="TextBox" />
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=PreviousData}}"
Value="{x:Null}">
<Setter TargetName="TextBox" Property="IsEnabled" Value="False" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</ComboBox.ItemTemplate>
TA贡献1775条经验 获得超8个赞
我用DataBindingfor创建了一个复合集合,ListView但逻辑是一样的:
<ListView SelectedValue="{Binding youVMPropertyHere}">
<ListView.ItemsSource>
<CompositeCollection>
<ListViewItem IsHitTestVisible="False">Default Item</ListViewItem>
<CollectionContainer Collection="{Binding Source={StaticResource cvsPresetLists}}"/>
</CompositeCollection>
</ListView.ItemsSource>
<!-- Where-->
<Window.Resources>
<CollectionViewSource Source="{Binding Presets.VolumePresetList}" x:Key="cvsPresetLists"/>
</Window.Resources>
这样你就可以让第一个项目不可选。我也会使用SelectedValue而不是SelectedIndex.
- 2 回答
- 0 关注
- 66 浏览
添加回答
举报