使用自定义 DataTemplate 时 WPF ComboBox IsEnable
WPF ComboBox IsEnable when using custom DataTemplate
这是以下内容。我想禁用组合框。
在 window 的某些情况下,我只是将 SelectedItem
从 ViewModel
设置为某些内容并且不允许用户更改它。但在某些情况下我想允许。
在 VM 中更改 ComboBoxIsEnabled
属性 时,这个效果很好。
<ComboBox ItemsSource="{Binding MyColletionView, Mode=OneWay}"
SelectedItem="{Binding MySelectedItem, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
DisplayMemberPath="Name"
IsEnabled="{Binding MyComboBoxIsEnabled}"/>
更改 ComboBox.ItemTemplate
后 IsEnable
属性 不再有反应。简而言之,我无法禁用 ComboBox
.
<ComboBox ItemsSource="{Binding MyColletionView, Mode=OneWay}"
SelectedItem="{Binding MySelectedItem, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
IsEnabled="{Binding MyComboBoxIsEnabled}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Converter={StaticResource CustomerConverter}}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
我不想禁用 ComboBoxItem
,我想禁用 ComboBox
本身。
有什么建议,或者有人面临同样的问题?
<ComboBox Height="20" Width="200" IsEnabled="True" Margin="38,38,1682,1022" ItemsSource="{Binding SourceData}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
我跟你一样写了个例子described.but我没用mvvm.I想证明IsEnable和ItemTemplate没有关系。
您可以从以下提示中追踪此问题。
- 在VisualStudio.There中观察输出window可能有一些异常。
- 用代码隐藏替换 mvvm 并尝试。
这是以下内容。我想禁用组合框。
在 window 的某些情况下,我只是将 SelectedItem
从 ViewModel
设置为某些内容并且不允许用户更改它。但在某些情况下我想允许。
在 VM 中更改 ComboBoxIsEnabled
属性 时,这个效果很好。
<ComboBox ItemsSource="{Binding MyColletionView, Mode=OneWay}"
SelectedItem="{Binding MySelectedItem, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
DisplayMemberPath="Name"
IsEnabled="{Binding MyComboBoxIsEnabled}"/>
更改 ComboBox.ItemTemplate
后 IsEnable
属性 不再有反应。简而言之,我无法禁用 ComboBox
.
<ComboBox ItemsSource="{Binding MyColletionView, Mode=OneWay}"
SelectedItem="{Binding MySelectedItem, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
IsEnabled="{Binding MyComboBoxIsEnabled}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Converter={StaticResource CustomerConverter}}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
我不想禁用 ComboBoxItem
,我想禁用 ComboBox
本身。
有什么建议,或者有人面临同样的问题?
<ComboBox Height="20" Width="200" IsEnabled="True" Margin="38,38,1682,1022" ItemsSource="{Binding SourceData}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
我跟你一样写了个例子described.but我没用mvvm.I想证明IsEnable和ItemTemplate没有关系。 您可以从以下提示中追踪此问题。
- 在VisualStudio.There中观察输出window可能有一些异常。
- 用代码隐藏替换 mvvm 并尝试。