我遇到了一些能够将我的自定义对象列表的数据绑定到ListBoxWPF 中的墙.
这是自定义对象:
public class FileItem
{
public string Name { get; set; }
public string Path { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是清单:
private List<FileItem> folder = new List<FileItem>();
public List<FileItem> Folder { get { return folder; } }
Run Code Online (Sandbox Code Playgroud)
该列表由FileSystemWatcher文件移动,删除,重命名等填充和维护.所有列表都保留了名称和路径的跟踪.
这是我在MainWindow代码隐藏文件中所拥有的内容(现在它的硬编码用于测试目的):
FolderWatcher folder1 = new FolderWatcher();
folder1.Run(@"E:\MyApp\test", "*.txt");
listboxFolder1.ItemsSource = folder1.Folder;
Run Code Online (Sandbox Code Playgroud)
这是我的XAML部分:
<ListBox x:Name="listboxFolder1" Grid.Row="1" BorderThickness="0"
ItemsSource="{Binding}"/>
Run Code Online (Sandbox Code Playgroud)
不幸的是,唯一显示的是MyApp.FileItem每个条目.如何显示名称等特定属性?
我成功地开发了用于将文件从Windows资源管理器拖动到listBox的C#代码.
// Drag and Drop Files to Listbox
private void listBox1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop, false))
e.Effect = DragDropEffects.All;
else
e.Effect = DragDropEffects.None;
}
private void listBox1_DragDrop(object sender, DragEventArgs e)
{
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop, false);
foreach (string fileName in files)
{
listBox1.Items.Add(fileName);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我将文件夹拖到listBox,则该文件夹内的所有文件都将添加到listBox项目中.
如果有人能为我提供上述任务的代码片段,对我来说会非常有帮助.
提前致谢.
我想在listboxItem中添加工具提示,但是当有DisplayMemberPath时它会启动问题.错误信息说:无法同时设置DisplayMemberPath和ItemTemplate.当我删除DisplayMemberPath时,每个列表项中的工具提示都有效.但我不想删除DisplayMemember因为我需要它.如何解决这个问题呢?
<ListBox x:Name="lstToys" Style="{DynamicResource ListBoxStyle1}" ItemsSource="{Binding Strings}" DisplayMemberPath="Toys" MouseDoubleClick="lstToys_MouseDoubleClick">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" ToolTip="Here is a tooltip"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Run Code Online (Sandbox Code Playgroud) 好吧,我有一个WPF应用程序,我ListBoxItem在资源字典中创建自己的,如下所示:
<DataTemplate x:Key="StationItem">
<Grid x:Name="Gridder" Tag="{Binding SItem.StationName}" Width="125" Height="55">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="20"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="20"/>
</Grid.ColumnDefinitions>
<Rectangle x:Name="Rectagler" Width="120" Height="50" RadiusX="5" RadiusY="5" VerticalAlignment="Center" HorizontalAlignment="Center" Grid.ColumnSpan="2" Grid.RowSpan="2" StrokeThickness="1" Stroke="Black">
<Rectangle.Fill>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFFF3A00" Offset="0"/>
<GradientStop Color="#FFE88D20" Offset="1"/>
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
<TextBlock Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2" x:Name="StationName" Text="{Binding SItem.StationName}" Foreground="Black" FontSize="14" FontWeight="SemiBold" TextWrapping="NoWrap" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,0"/>
<TextBlock Grid.Column="0" Grid.Row="1" x:Name="StationCountry" Text="{Binding SItem.StationCountry}" Foreground="WhiteSmoke" FontSize="11" FontWeight="Light" TextWrapping="NoWrap" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,8"/>
<Image Tag="{Binding SItem.StationName}" Width="15" Height="15" …Run Code Online (Sandbox Code Playgroud) 如何在另一个应用程序窗口中读取列表框项?我可以得到窗口的句柄,但我不知道访问其中的组件的明确方法.
是否有一个方法返回wxPython listBox中包含的项列表?
我似乎无法在文档中找到任何地方或任何地方.我能想到的就是将选择设置为所有项目,然后获取所选项目,尽管看起来像是一种丑陋的迂回方式,可以做一些简单的事情.
更新:
正如杰里米所指出的,这样做的方法是 GetStrings()
例如
listBoxList = yourListBox.GetStrings()
看代码:
function ShowItem(MyData: TMyData): TListItem;
var
vListItem: TListItem;
begin
vListItem := ListView1.Items.Add;
vListItem.Data := MyData;
vListItem.ImageIndex := 1;
vListItem.Caption := MyData.Caption;
Result := vListItem;
end;
Run Code Online (Sandbox Code Playgroud)
我需要做些什么来使TListBox工作?ListView.Items属性似乎是TListItem的属性,而ListBox.Items不是,这意味着该函数将无法为TListBox返回正确的参数.
我怎么能为TListBox转换这个?
谢谢
我做了一个应用程序将某些数字转换为其他格式
即
- 1 = A.
- 2 = B.
- 3 = C.
- 4 = D.
- 5 = E.
- 等等
我已经完成了这个功能没有问题,我已经使用了很长一段时间,但现在我想更快地批量做事.
因此,我很难从文本文件复制到Textbox1然后按button1然后将textbox2复制到其他文本文件.
所以我在考虑将文本文件加载到列表框中,然后对该列表中的每个项目执行循环,将其导入到可以导出到另一个文本文件的第二个列表中.
导入和导出我已经覆盖但我坚持的是制作循环.
如果你知道一个更好的方法让我知道或者告诉我如何以这种方式修复它,那么这就是我所拥有的.
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Using FD As New OpenFileDialog()
FD.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
If FD.ShowDialog = Windows.Forms.DialogResult.OK Then
ListBox1.Items.Clear()
ListBox1.Items.AddRange(IO.File.ReadAllLines(FD.FileName))
End If
End Using
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Do
Dim Item As String = ""
For Each i As String …Run Code Online (Sandbox Code Playgroud) 是否可以将ListBox.SelectedObjectCollection转换为C#中的ListBox.ObjectCollection?如果是这样,我该怎么办呢?
我编写一个程序将在大显示器上的多个列表框中显示一个数字列表,我的问题是有没有办法自动滚动列表框以显示框中的所有数据?
我有一个列表框,其中包含由单个文本框表示的项目.
当用户单击一个按钮时,我想通过所有这些文本框进行迭代,并检查它们的绑定表达式是否没有错误; 应该是这样的:
Dim errCount = 0
For Each item In MyListBox.ListBoxItems 'There is no such thing ListBoxItems which is actually what I am looking for.
Dim tb As TextBox = item '.........Dig in item to extract the textbox from the visual tree.
errCount += tb.GetBindingExpression(TextBox.TextProperty).HasError
Next
If errCount Then
'Errors found!
End If
Run Code Online (Sandbox Code Playgroud)
任何讨论都会非常感激.谢谢.
我正在尝试使用Web服务读取数据并将其显示在如下所示的成本化的lisBox上,但它不起作用."当我进行调试时,我的手机应用程序屏幕没有显示任何列表"
XAML代码:
<ListBox Height="500" HorizontalAlignment="Left"
Margin="8,47,0,0"
Name="friendsBox" VerticalAlignment="Top" Width="440">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Height="100" Width="100"
VerticalAlignment="Top" Margin="0,10,8,0"
Source="{Binding Photo}"/>
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Nom}" FontSize="28" TextWrapping="Wrap" Style="{StaticResource PhoneTextAccentStyle}"/>
<TextBlock />
</StackPanel>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Run Code Online (Sandbox Code Playgroud)
C#代码:
void friends_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
if (e.Error == null)
{
ListBoxItem areaItem = null;
StringReader stream = new StringReader(e.Result);
XmlReader reader = XmlReader.Create(stream);
string Nom = String.Empty;
string Photo = String.Empty;
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
{
if (reader.Name == …Run Code Online (Sandbox Code Playgroud) listboxitems ×12
listbox ×7
c# ×6
wpf ×4
data-binding ×2
delphi ×2
casting ×1
collections ×1
delphi-7 ×1
directory ×1
foreach ×1
list ×1
listboxitem ×1
listview ×1
loops ×1
memory ×1
python ×1
vb.net ×1
web-services ×1
winapi ×1
winforms ×1
wxpython ×1