如何根据ListView中的ComboBox启用/禁用TextBox

时间:2011-12-25 16:08:30

标签: c# wpf wpf-controls

是否可以根据ComboBox选择的值启用/禁用TextBox(例如,如果选择的值为“From To”,则启用它?

<ListView Height="120" HorizontalAlignment="Left" Margin="19,92,0,0"
          VerticalAlignment="Top" Width="500" 
          SelectionMode="Multiple"
          ItemsSource="{Binding Products}">
    <ListView.View>
        <GridView>
            <!--another columns-->
            <GridViewColumn Header="Selection Mode">
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <ComboBox Width="70" Name="SelectionMode">
                            <ComboBoxItem Content="From To" IsSelected="True" />
                            <ComboBoxItem Content="List" />
                        </ComboBox>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
            <GridViewColumn>
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <TextBox Width="70"></TextBox>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
        </GridView>
    </ListView.View>
</ListView>

1 个答案:

答案 0 :(得分:1)

我建议您使用ComboBoxItem的值而不是内容。您需要编写一个绑定,它将绑定您的组合框SelectedValue(请参阅我的建议)到您文本框的Enabled。绑定将使用转换器(IValueConverter),如果True,则会根据您的查询返回FalseSelectedValue,具体取决于传入的SelectedValue == 'FromTo'值,您的转换器将返回True,否则将返回False

我还建议您使用对象,支持您的UI元素,这绝对是一种更干净的做事方式。