RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-204383

Gardes's questions

Martin Hope
Gardes
Asked: 2020-09-04 14:05:24 +0000 UTC

保存 TreeView 状态

  • 2

是否可以在 DataContext 更改时保存 TreeView 的状态(扩展节点,SelectedItem)。

DataContext 的结构在更改时不会更改。

<TreeView ItemsSource="{Binding Fields}">
    <TreeView.Resources>
        <HierarchicalDataTemplate  DataType="{x:Type vm:NodeVM}" ItemsSource="{Binding Childs}" >
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding Name}" MinWidth="80"/>
                <TextBlock Text="{Binding Value}"/>
            </StackPanel>
        </HierarchicalDataTemplate>
    </TreeView.Resources>        
</TreeView>

虚拟机:

public class NodeVM : BaseVM
{
    public string Name { get; set; }
    public string Value
    {
        get { return _value; }
        set { _value = value; RaisePropertyChanged(); }
    }

    public List<NodeVM> Childs { get; set; }

    public NodeVM()
    {
        Childs = new List<NodeVM>();
    }

    string _value;
}

public List<NodeVM> Fields { get; set; }

根据评论中的建议,我替换了更改的节点,但子节点的状态并没有以这种方式保存。

在此处输入图像描述

c#
  • 1 个回答
  • 10 Views
Martin Hope
Gardes
Asked: 2020-01-27 21:46:42 +0000 UTC

TextBlock 中的指数书写

  • 12

DataGridTextColumn当没有足够的空间来完整显示数字时,如何实现向指数表示法的过渡。

期望的效果:

在此处输入图像描述

有一个想法是使用转换器,并在每次列宽更改时调用它。在转换器中使用StringFormat. 出现其他问题:

  • 应该订阅什么事件来跟踪列大小的变化?
  • 如何确定一个单元格中可以容纳多少个字符,以便知道在逗号之后和之前显示多少个字符E?

TextTrimming="CharacterEllipsis"PS TextBlock属性做类似的事情。如果没有足够的空间显示,一些字符被省略号代替。如果您了解 TextBlock 如何确定它没有足够的空间来显示文本,那么它可能会解决这个问题。

c#
  • 1 个回答
  • 10 Views
Martin Hope
Gardes
Asked: 2020-10-10 19:17:23 +0000 UTC

释放鼠标按钮后调整窗口大小

  • 1

你好。如何使用鼠标按钮调整窗口大小而不是动态(即拖动时立即),但只有在释放它之后?

ShowsPreview您需要元素上的属性之类的东西GridSplitter。Window没有找到类似的东西。

c#
  • 1 个回答
  • 10 Views
Martin Hope
Gardes
Asked: 2020-09-20 19:53:32 +0000 UTC

使用事件处理程序创建克隆

  • 0

在实现IClonable. 例如:

public class A : IClonable, //INPC
{
     //...
}
public class B : IClonable
{
    public A PropA { get; set; }
    public B()
    {
        PropA.PropertyChanged += a_PropertyChanged;
    }

    private void a_PropertyChanged()
    {
        //...
    }
    public object Clone()
    {

        // ????
        return new B() { PropA = this.PropA.Clone() };
    }

}

在这种情况下,创建的克隆B没有事件订阅。
有没有比在新对象中再次订阅事件更方便的选择?

c#
  • 2 个回答
  • 10 Views
Martin Hope
Gardes
Asked: 2020-09-19 17:07:00 +0000 UTC

两个活动的标签 TabControl 或如何取消标签的改变?

  • 0

提供TabControl3 个标签TabItem。每个选项卡都有自己的VM. 整个东西都保存在收藏中ObservableCollection<AbstractVM> TabItemsVM。

  <TabControl ItemsSource="{Binding TabItemsVM}"
              SelectedItem="{Binding SelectedTabVM}"
              TabStripPlacement="Top"> 
        <TabControl.ItemContainerStyle>
            <Style TargetType="TabItem">
                <Setter Property="Header" Value="{Binding Header}"/>
                <Setter Property="Width" Value="100"/>                                       
            </Style>
        </TabControl.ItemContainerStyle>
    </TabControl>   

作品

通过分配从代码中选择另一个选项卡时SelectedTabVM TabItemsVM[0]。代码如下:

_selectedTabVM = TabItemsVM[0]; //присваиваю именно приватному полю,
                                //т.к. в публичном, в сеттере хранится некая логика проверки.
                                //в то время как я хочу изменить вкладку без проверки
//Вызываю PropertyChanged("SelectedTabVM");

一切正常时选项卡会更改:

实施SelectedTabVM:

private Abstract VM _selectedTabVM;
public AbstractVM SelectedTabVM
    {
        get { return _selectedTabVM; }
        set
        {
            if (modeChangeExecute())
            {
                _selectedTabVM = value;
                NotifyPropertyChanged("SelectedTabVM");
            }                 
        }
    }

作品

但是当你通过界面切换标签时,你会得到这样的画面:

不起作用

那些。两个选项卡的属性IsSelected设置为True。有什么问题?IsSelected为什么属性没有从我从代码切换到的选项卡中删除

UPD 在英语 stackoverflow 上发现了一个不太相似的问题: https ://stackoverflow.com/questions/7929646/how-to-programmaticaly-select-a-tabitem-in-wpf-tabcontrol

这里看起来像是控制错误TabControl本身WPF

c#
  • 2 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5