2 回答

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超8個(gè)贊
您可以利用PreviousData RelativeSource 將為null集合的第一個(gè)元素返回這一事實(shí)。知道您可以將DataTrigger添加到 DataTemplate 以將其IsEnabled屬性設(shè)置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貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超8個(gè)贊
我用DataBindingfor創(chuàng)建了一個(gè)復(fù)合集合,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>
這樣你就可以讓第一個(gè)項(xiàng)目不可選。我也會使用SelectedValue而不是SelectedIndex.
- 2 回答
- 0 關(guān)注
- 85 瀏覽
添加回答
舉報(bào)