【问题标题】:How select a ListBox when app loads?应用加载时如何选择列表框?
【发布时间】:2014-05-04 12:59:31
【问题描述】:

我有一个显示多张图片的列表框,每张图片都有两种状态选择和未选择。 从一种状态切换到另一种状态会使图像更改 url - IDEA 就像一个单选按钮

当用户点击所选图片时无任何操作。 当用户单击另一个未选择的图像时,该图像将被选择,而之前的图像将进入未选择状态。

现在在 Floors_SelectionChanged 的​​代码中我能够处理这种情况,我的问题是当应用程序启动时我需要 PRE-SELECT 和图像。

我需要知道:

  • 如果这种使用 ListBox 的方法适用于此 场景,还有更好的选择吗?
  • 如何进行这种预选?

    <DataTemplate x:Key="FloorsListboxDataTemplate">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
            </Grid.RowDefinitions>
            <TextBlock Grid.Row="0" TextWrapping="Wrap"
                       Text="{Binding Description,
                       FallbackValue='Description'}">
            </TextBlock>
            <Image x:Name="FloorImage"
                   Grid.Row="1"
                   Source="{Binding ImageUrlCurrent}"/>
        </Grid>
    </DataTemplate>
    
    
            <Custom:SurfaceListBox x:Name="FloorsSurfaceListBox"
                           SelectionChanged="Floors_SelectionChanged"
                           Loaded="FloorsSurfaceListBox_Loaded"
                           ItemTemplate="{DynamicResource FloorsListboxDataTemplate}">
    

【问题讨论】:

  • PRE-SELECT 怎么了?可以试试这个:&lt;Custom:SurfaceListBox SelectedIndex="0" ... /&gt;?

标签: c# wpf winforms listbox


【解决方案1】:
  1. 大多数 WPF 应用程序的正确方法是 MVVM 设计
  2. 当你的 ListBox 的Loaded 事件被触发时,你能设置SelectedIndex = 0 吗?如果您在 ListBox 上使用 x:Name,您可以在触发自定义控件的 Loaded 事件时调用 listbx.SelectedIndex = 0 吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-22
    • 2013-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-21
    • 1970-01-01
    相关资源
    最近更新 更多