【发布时间】:2018-03-19 18:12:17
【问题描述】:
我正在开发的 WPF 应用程序中有两个 ListView 项目。在我的应用程序中,它们都连接到Presenter ViewModel 中的Datasets。
我最初的想法是将我的SelectedItem 中的ListView 加载到TextBox 中,然后为第二个ListView 关闭过滤器
但是,我遇到了一个问题:我想按数字过滤,而 TextBox 似乎只想接收文本。有解决办法吗?
这是我的 XAML
<Grid Margin="5,2,5,2" Height="350">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<ListView x:Name="TypeView" Grid.Column="0" ItemsSource="{Binding CashActivityTypes}" Margin="0,0,10,0">
<ListView.View>
<GridView>
<!--This is the column I want to get -->
<GridViewColumn Header="Sequence" DisplayMemberBinding="{Binding Sequence}" Width="75"/>
<GridViewColumn Header="Activity Type" DisplayMemberBinding="{Binding Type}" Width="200"/>
<GridViewColumn Header="Description" DisplayMemberBinding="{Binding Description}" Width="Auto"/>
</GridView>
</ListView.View>
</ListView>
<ListView Grid.Column="1" Margin="10,2,0,2">
<ListView.View>
<GridView>
<GridViewColumn Header="Sequence" Width="75"/>
<GridViewColumn Header="Activity" Width="200"/>
<GridViewColumn Header="Description" Width="Auto"/>
</GridView>
</ListView.View>
</ListView>
</Grid>
<Grid Margin="5,2,5,2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBox Text="{Binding SelectedItem.Sequence, ElementName=TypeView, UpdateSourceTrigger=PropertyChanged}" Width="150" HorizontalAlignment="Left"/>
<Button Grid.Column="1" Content="Adjust Daily Cash Activity" MinWidth="150" Height="20" HorizontalAlignment="Right"/>
</Grid>
【问题讨论】:
-
嗯,它被称为 TEXT 框是有原因的 :)。也许您可以使用转换器将字符串解析为数字,或者在您的视图模型中进行转换/解析。此外,还有许多数字文本框控件只接受数字。我正在使用 XCeed 工具包:nuget.org/packages/Extended.Wpf.Toolkit,也许这会有所帮助
标签: c# wpf xaml listview textbox