gpt4 book ai didi

c# - 如何在ListView中将两列的值连接成一列

转载 作者:行者123 更新时间:2023-12-03 10:52:06 26 4
gpt4 key购买 nike

我有一个包含 ListView 的 .xaml 文件。 Listview 有 2 个项目,其中以下列方式绑定(bind):

<ListView  Name="listView" ItemsSource="{Binding DeviceList}" SelectedItem="{Binding ConnectedDevice, Mode=TwoWay}" >
<ListView.View>
<GridView>
<GridViewColumn Width="300" Header="Name" DisplayMemberBinding="{Binding Description}" />
<GridViewColumn Width="240" Header="Connection Status" DisplayMemberBinding="{Binding DeviceName}" />
</GridView>
</ListView.View>
</ListView>

两个 说明 设备名称 是 ModelClass 的一部分。在我的 ViewModel 类中,我能够从我连接的硬件中提取设备名称和描述。
    public ObservableCollection<ComDeviceInfo> DeviceList
{
get { return comDevices; }
set
{
comDevices = value;
NotifyPropertyChanged("DeviceList");
}
}

public ComDeviceInfo ConnectedDevice
{
get { return connectedDevice; }
set
{
connectedDevice = value;
NotifyPropertyChanged("ConnectedDevice");
}
}

//Called Inside Constructor
private void checkForDevicesTimer_Elapsed(Object source, ElapsedEventArgs e)
{
DeviceList = ComDeviceManagement.FindDevices();
}

这里 通信设备管理 我的类(class)有 FINDDevices() 它返回给我设备名称和描述。你可以注意到上面的 DeviceList = ComDeviceManagement.FindDevices() 表明描述和名称都存在于列表中。

一切正常。但我基本上想要的是在一列中显示设备名称和描述,而不是两个单独的列。那么我在这里面临的问题是设备名称和描述。即使它们都显示不同的值,难道不是我可以将它们连接起来并将两个值显示到单个列中的一种方式吗???您可能会注意到 .xaml 文件中的另一列,但我想在 listView 的单个列中显示(连接)这两个列。
我怎样才能做到这一点?

请帮忙!!

最佳答案

使用 MultiBinding带有格式字符串。

<GridViewColumn>
<TextBlock>
<!-- the Text property is of type System.String -->
<TextBlock.Text>
<MultiBinding StringFormat="{0} {1}">
<Binding Path="Description "/>
<Binding Path="Name"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</GridViewColumn>

对于 MultiBinding,您必须了解的是,如果目标属性不是字符串,那么您必须提供一个转换器。如果它是一个字符串,您可以只使用格式字符串。

因此,在您的情况下,您不能(轻松地)通过 DisplayMemberBinding 使用它,您必须像上面的示例中那样指定内容。

关于c# - 如何在ListView中将两列的值连接成一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12621133/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com