小编fal*_*kky的帖子

双串.格式

我有一些双重值,我想转换为具有此模式的字符串:

0.xx or x.xx
Run Code Online (Sandbox Code Playgroud)

目前我试过这个:

double.ToString("#.#0");
Run Code Online (Sandbox Code Playgroud)

如果我的号码从零开始,我应该添加什么才能看到零?

.net c# string.format

21
推荐指数
3
解决办法
4万
查看次数

Python:如何编辑XML文件的元素?

我有一个XML文件,该文件包含许多命名元素,每个元素nodes下面都有几个:

<name search = "select ARG: write">
    <version id = "1.0.0">
        <value>myVal</value>
        <method>myMethod</method>
    </version>
</name>
<name search = "select ARG: bla">
    <version id = "2.0.0">
        <value>myVal</value>
        <method>myMethod</method>
    </version>
</name>
Run Code Online (Sandbox Code Playgroud)

我想搜索这个XML文件,如果这个名称搜索值以select ARG(在我的示例中第一个值是select ARG: write)开头,我想创建这个新的命名元素,但这次的值应该select ARG: write是selected ARG: write。这是我尝试过的:

from xml.dom import minidom

xamlfile = r'C:\file.xml'
newxamlfile = r'C:\new.xml'

dom = minidom.parse(xamlfile)

# Fetch the desired elements in the tree.
res = dom.getElementsByTagName('name')

# Loop through all.
for …
Run Code Online (Sandbox Code Playgroud)

python xml

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

如何使用 Enum 属性中的 DataTrigger?

所以我有这个Enum:

public enum Status
{
    Intermediate = 0,
    Valid,
    NotValid
}
Run Code Online (Sandbox Code Playgroud)

我的ViewModel:

public class MyData
{
   private Status _status;

   public Status Status 
   {
       get { return _status; }
       set
       {
           _status= value;
           OnPropertyChanged();

       }
}
Run Code Online (Sandbox Code Playgroud)

我的文本框Style:

<MultiDataTrigger>
    <MultiDataTrigger.Conditions>
        <Condition Binding="{Binding Status.Valid}" Value="True"/>
    </MultiDataTrigger.Conditions>
    <Setter Property="Background" Value="LightSeaGreen" />
</MultiDataTrigger>
Run Code Online (Sandbox Code Playgroud)

所以这个Status属性正在改变,我验证它变成了Valid但我的TextBox Background颜色仍然没有改变。这style是在其他ResourceDictionary文件中定义的。这个文件的名字是TextBox.xaml.

其他属性工作正常,我问的原因是我从不尝试编写Trigger,enum所以我什至不知道该怎么做。

wpf enums binding textbox

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

移除 ToggleButton 烦人的背景鼠标悬停样式

我很简单ToggleButton,当IsChecked我只想更改文本时。我想要所有其他属性,border并且background将是,Transparent但似乎我仍然拥有这个background style:

<ToggleButton x:Name="changeButBorderedBlinky" Content="EDIT" Width="40" Height="40" Background="Transparent">
      <ToggleButton.Style>
           <Style TargetType="{x:Type ToggleButton}">
               <Style.Triggers>
                   <Trigger Property="IsMouseOver" Value="true">
                         <Setter Property="Content" Value="Done"/>
                         <Setter Property="FontWeight" Value="Bold"/>
                    </Trigger>
                </Style.Triggers>
           </Style>
       </ToggleButton.Style>
</ToggleButton>
Run Code Online (Sandbox Code Playgroud)

wpf togglebutton

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

Python:将日期时间格式转换为另一种格式

所以我有这种 f 格式:

'%Y-%m-%d %H:%M:%S.%f'

date_time = datetime.now()
Run Code Online (Sandbox Code Playgroud)

输出

'2019-04-15 07:52:14.211697'
Run Code Online (Sandbox Code Playgroud)

我想将其更改为这种格式:'%Y-%m-%d %H:%M:%S,%f'

这就是我尝试过的:

time = datetime.strptime(str(date_time), '%Y-%m-%d %H:%M:%S,%f')
Run Code Online (Sandbox Code Playgroud)

这是error:

ValueError:时间数据'2019-04-15 07:52:14.211697'与格式'%Y-%m-%d %H:%M:%S,%f'不匹配

编辑

所以我有这个string:

    maches = regex.findall(
        '[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1]) (?:2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9],[0-9][0-9][0-9]',
        line)

match[0] = '2019-03-13 17:35:35,855'
Run Code Online (Sandbox Code Playgroud)

我想将其转换为Datetime:

time = datetime.strptime(maches[0], '%Y-%m-%d %H:%M:%S,%f')
Run Code Online (Sandbox Code Playgroud)

这又返回了另一个format:

2019-03-13 17:35:35.855000
Run Code Online (Sandbox Code Playgroud)

为什么 ?

python datetime

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

在更新ProgressBar期间,UI卡住了

我正在使用Pcapdot.net DLL,以便将数据包缓冲区发送到我的网络适配器.我检查了我的Wireshark文件并收集了所有信息,例如包的数量,持续时间等.我的主类发送缓冲区并具有几个属性(包的数量,持续时间......)在主线程中,我使用BackgroundWorker检查此类. ProgressChanged:

            bgWoSingle = new BackgroundWorker();
            bgWoSingle.WorkerReportsProgress = true;
bgWoSingle.ProgressChanged += new ProgressChangedEventHandler(bgW_ProgressChanged);
Run Code Online (Sandbox Code Playgroud)

Wireshark文件中的每个数据包都有一个timstamp,当然我可以通过增加或减少数据包之间的时间戳来以其他速率发送此缓冲区.现在我的问题是:

我正在检查的一个属性是我已经发送了多少个数据包.因为我知道我的文件包含多少个数据包,所以我可以通过进度条显示进度.如果我通过删除数据包播放之间的所有延迟将发送速率更改为最大值,则速度非常快,进度条和所有UI都会停止,直到它完成发送所有数据包.我该怎么改变它?也许通过另一个线程更新我的ProgressBar?

这是我检查课程的功能:

  void bgW_ProgressChanged(object sender, ProgressChangedEventArgs e)
  {
    //bla bla bla (check all Class properties)

        pcap = e.UserState as Pcap;
        progressBar1.Value = e.ProgressPercentage; //here is my progressBar update


    //bla bla bla (check all Class properties)
  }
Run Code Online (Sandbox Code Playgroud)

c# winforms

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

标签 统计

c# ×2

python ×2

wpf ×2

.net ×1

binding ×1

datetime ×1

enums ×1

string.format ×1

textbox ×1

togglebutton ×1

winforms ×1

xml ×1