0

我有一个用户控件,因为我有一个列表选择器。代码是:

<Grid x:Name="LayoutRoot" Background="{StaticResource PhoneChromeBrush}">
        <Grid.RowDefinitions>
            <RowDefinition Height="auto"/>
            <RowDefinition Height="auto"/>
            <RowDefinition Height="auto"/>
        </Grid.RowDefinitions>

        <toolkit:ListPicker x:Name="lstPicker" Grid.Row="1" Margin="25,0,25,15" />
        <StackPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Center" >
            <Button Width="200" x:Name="btnReAssign" Content="reassign" Margin="5"/>
            <Button Width="200" x:Name="btnCancel" Content="cancel"  Margin="5"/>
        </StackPanel>        
</Grid>

现在我在运行时创建弹出用户控件。

MyTaskPopupWindow myTaskPopUpWindow = new MyTaskPopupWindow();

这包含列表选择器。现在我将此列表选择器与我的数据对象绑定。

 myTaskPopUpWindow.lstPicker.ItemsSource = GetRegisterUserOC;

但是类名显示在列表选择器中,而不是属性中。我不知道我应该如何将属性之一绑定到此列表选择器。我可以从后面的代码中绑定其中一个属性吗,因为我不想在用户控件中进行更改。

4

2 回答 2

1

通常你会做这样的事情:

<toolkit:ListPicker x:Name="lstPicker" Grid.Row="1" Margin="25,0,25,15" >
    <toolkit:ListPicker.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding YourDisplayPropertyOnObject}"/>
        </DataTemplate>
    </toolkit:ListPicker.ItemTemplate>
</toolkit:ListPicker>

如果您宁愿采取更懒惰的方法,您可以简单地覆盖ToString()您要绑定的对象上的属性以显示您想要的方式。

于 2013-11-11T11:25:52.877 回答
0

我从来没有使用过ListPicker,但你不能将 设置为DisplayMemberPath你想要显示的属性(例如名称)吗?

<Grid x:Name="LayoutRoot" Background="{StaticResource PhoneChromeBrush}">
        <Grid.RowDefinitions>
            <RowDefinition Height="auto"/>
            <RowDefinition Height="auto"/>
            <RowDefinition Height="auto"/>
        </Grid.RowDefinitions>
        <TextBlock x:Name="tbkTitle" Margin="25,25,25,15" FontSize="32" />
        <toolkit:ListPicker x:Name="lstPicker" Grid.Row="1" Margin="25,0,25,15" DisplayMemberPath="Property" />
        <StackPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Center" >
            <Button Width="200" x:Name="btnReAssign" Content="reassign" Margin="5"/>
            <Button Width="200" x:Name="btnCancel" Content="cancel"  Margin="5"/>
        </StackPanel>        
</Grid>

或者

 myTaskPopUpWindow.lstPicker.DisplayMemberPath = PropertyName;
于 2013-11-11T11:30:25.417 回答