【发布时间】:2020-04-12 18:02:48
【问题描述】:
我想创建一个ListView,我需要在其中的每个列表视图项中创建一个ComboBox。
ComboBox 应该是可编辑的,以便它接受文本并使用输入的文本创建一个新项目。我参考了我的previous question
这是MainPage.xaml的代码
<Page.Resources>
<local:RoleConverter x:Key="RoleConverter" Options="{x:Bind VM.UserRoleList}" RoleEditText="{x:Bind VM.EditText,Mode=OneWay}"/>
</Page.Resources>
<Grid HorizontalAlignment="Center" VerticalAlignment="Center">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<ListView x:Name="DataListView" ItemsSource="{x:Bind UserList}" VerticalAlignment="Center" HorizontalAlignment="Center">
<ListView.ItemTemplate>
<DataTemplate x:DataType="data:User">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{x:Bind username}" Width="150" />
<TextBlock Text="{x:Bind fisrt_name}" Width="150"/>
<TextBlock Text="{x:Bind last_name}" Width="150" />
<ComboBox
Width="150"
IsEditable="True"
IsTextSearchEnabled="True"
Text="{Binding ElementName=DataListView, Path=DataContext.EditText, Mode=TwoWay}"
DisplayMemberPath="name"
SelectedItem="{x:Bind user_role, Mode=TwoWay , Converter={StaticResource RoleConverter}}"
ItemsSource="{Binding ElementName=DataListView, Path=DataContext.UserRoleList,Mode=TwoWay}">
</ComboBox>
<TextBlock Text="{x:Bind user_role.name , Mode=OneWay}" Width="150"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<Button Grid.Row="1" Name="submit" Click="submit_Click" Content="click" />
</Grid>
现在的问题是我已将转换器类属性设置为全局属性,因此当我在一个列表项中输入文本时,它也会反映在其他项中。 它应该更改输入行中的文本。这是我完整的source code
请帮忙!谢谢
【问题讨论】:
标签: c# listview uwp combobox viewmodel