小编Hol*_*lly的帖子

具有多个列的TreeView

我有一个基本的类,看起来像这样:

public class Item
{
    private string      name;
    private bool        visible;
    private double      value;
    private Item        parent;
    private List<Item>  children = new List<Item>();
    …
}
Run Code Online (Sandbox Code Playgroud)

我有一个需要在树形视图中显示的项目列表。对于每个项目,我需要显示以下字段:

  • “可见”为复选框
  • “名称”作为文本块
  • “值”作为滑块

我想通过使用MVVM来做到这一点,所以我定义了以下类“ ItemViewModel”和“ ItemCollectionViewModel”,将树视图绑定到这些类。

我尝试了以下XAML:

<TreeView ItemsSource="{Binding ItemViewModelList}">
    <TreeView.ItemContainerStyle>
        <Style TargetType="{x:Type TreeViewItem}">
            <Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
            <Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
            <Setter Property="FontWeight" Value="Normal" />
            <Style.Triggers>
                <Trigger Property="IsSelected" Value="True">
                    <Setter Property="FontWeight" Value="Bold" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </TreeView.ItemContainerStyle>

    <TreeView.ItemTemplate>
        <HierarchicalDataTemplate ItemsSource="{Binding Children}">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition SharedSizeGroup="VisibiltyCol" />
                    <ColumnDefinition SharedSizeGroup="NameCol" /> …
Run Code Online (Sandbox Code Playgroud)

wpf wpf-controls

3
推荐指数
1
解决办法
5036
查看次数

使用IPAddress.Address会导致异常

我有一个旧服务,我通过以下方式比较2个IP地址(当服务启动时):

if (IPAddress1.Address == IPAddress2.Address)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

它在2003服务器上安装并启动时始终工作正常,但现在当我尝试在2008服务器上安装它时,我得到以下异常:

服务无法启动.System.Net.Sockets.SocketException:System.Net.IPAddress.get_Address()引用的对象类型不支持尝试的操作

(奇怪的是,当尝试在客户端2008服务器上安装并启动它时,它工作).

问题是什么?

c#

1
推荐指数
1
解决办法
646
查看次数

标签 统计

c# ×1

wpf ×1

wpf-controls ×1