假设您有一个继承自ValidationRule的类:
public class MyValidationRule : ValidationRule
{
public string ValidationType { get; set; }
public override ValidationResult Validate(object value, CultureInfo cultureInfo)
{}
}
Run Code Online (Sandbox Code Playgroud)
在XAML中,您正在验证如下:
<ComboBox.SelectedItem>
<Binding Path="MyPath" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged" NotifyOnValidationError="True">
<Binding.ValidationRules>
<qmvalidation:MyValidationRule ValidationType="notnull"/>
</Binding.ValidationRules>
</Binding>
</ComboBox.SelectedItem>
Run Code Online (Sandbox Code Playgroud)
哪个有效,一切都好.
但是现在假设,你想拥有ValidationType="{Binding MyBinding}"
它的MyBinding
来源DataContext
.
为此,我需要创建MyValidationRule
一个DependencyObject
并添加一个依赖属性.
我试着写一个类DependencyObject
,然后绑定它.但是有两个问题.. ValidationRule
没有DataContext
来自Combobox/Item的.
你有什么想法,怎么解决?
谢谢 !
我有这个TextBox.此TextBox位于DataTemplate中:
<DataTemplate x:Key="myTemplate">
<TextBox Text="{Binding Path=FullValue, Mode=TwoWay}" IsEnabled="False" />
...
Run Code Online (Sandbox Code Playgroud)
我想允许用户选择其中的整个文本(可选择通过单击文本框).而且我不想使用任何代码.
怎么做?提前致谢.
WPF Popup
如果在弹出区域外单击或如果移动父控件,如何关闭WPF控件?
我无法从父控件中检查它,一切都必须由控件本身完成.
1.问题的一部分: 这两个事件注册有什么区别?
_popUp.AddHandler(PreviewMouseLeftButtonDownEvent, new MouseButtonEventHandler(PopUp_PreviewMouseLeftButtonDown));
_popUp.PreviewMouseLeftButtonDown += new MouseButtonEventHandler(_popUp_PreviewMouseLeftButtonDown);
Run Code Online (Sandbox Code Playgroud)
2.问题的一部分: 或最终与
popUp.Opened += PopUp_Opened;
Run Code Online (Sandbox Code Playgroud) 我正在使用最新的WPF工具包,特别是DatePicker
.一切正常,但是当没有提供任何值时,默认的"SHOW CALENDAR"文本出现在DatePickerTextBox中.我希望能够在WPF中更改此值.
一个告诉我下载源代码,添加一个新的Dependency属性并重新编译为dll.这很酷但是如果新版本发布会怎么样?
这就是为什么我想以这种方式模板化这个控件,我将能够覆盖这个默认字符串.知道怎么做吗?
谢谢!
我非常感谢您在代码中定义区域的可能性,因为它可以疯狂地提高可读性.
无论如何,我想让所有人在所有类中使用相同的约定(使用所有区域的预定义顺序),例如:
你有什么命题可以看出这个区域是什么样的(哪些区域有意义,哪些区域应该有它们)以及它们应该以何种顺序定义?
我有很多TextBox
控件,我正在尝试编写一个样式,在禁用 Control 时清除Text属性.我不希望代码中有事件处理程序.
我写了这个:
<Style TargetType="{x:Type TextBox}">
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Text" Value="{x:Null}" />
</Trigger>
</Style.Triggers>
</Style>
Run Code Online (Sandbox Code Playgroud)
问题是如果TextBox定义如下:
<TextBox Text={Binding Whatever} />
Run Code Online (Sandbox Code Playgroud)
然后触发器不起作用(可能是因为它的约束)如何克服这个问题?
我有菜单项,如:Row1 Row2 .. RowN,我希望它们不要那么宽 - 这就是为什么包括休息(最大宽度)
我有这个HTML:
<div>
<ul>
<li>Row1</li>
<li>Row1 Row2 Row3</li>
<li>Row1</li>
<li>Row1 Row 2</li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
用这个CSS:
/* MENU */
.menudiv {padding-left:10px; border-bottom: 1px solid #d0db88;}
ul.menu
{
list-style-type: none;
min-width: 1050px;
position: relative;
left:10px;
display: block;
height: 45px;
margin: 0;
padding: 0;
}
ul.menu li
{
float: left;
margin: 0;
padding: 0;
}
ul.menu li a
{
float: left;
text-decoration: none;
padding: 9px 12px 0;
font-weight: bold;
max-width:130px;
}
Run Code Online (Sandbox Code Playgroud)
实际:
+--------------------+
|Row1 Row1 Row1 Row1 | …
Run Code Online (Sandbox Code Playgroud) 当我尝试在窗体设计器中更改Windows窗体上的控件的默认图像时(无论在哪个控件上),我收到此错误:
错误消息:已添加具有相同键的项目
我试图删除并重新创建Resources.resx文件..我保证只有1个具有这些密钥的resx文件存在..(实际上这是我唯一的资源文件)但它仍然不起作用.
我有som字符串和一些图像.就这样.
任何的想法?
想象一下你打开WPF的情况Popup
(例如通过ButtonClick).您可以ListBox
直接Popup
使用某些项目,因此您必须能够滚动.想象一下,这是你的Custom Control
,它位于ScrollViewer
.
现在如果你用鼠标移动到Popup
表面并滚动,会发生什么?你可以向上和向下滚动但是Popup
打开了!这就是问题所在.
问题是,如何从Control内部检测到VisualTree中的其他一些未知的Parent Control已经开始滚动?并连续设定IsDropDownOpen = false
?
wpf ×6
c# ×2
textbox ×2
.net ×1
css ×1
datepicker ×1
html ×1
html-lists ×1
move ×1
popup ×1
positioning ×1
region ×1
regions ×1
resources ×1
scroll ×1
scrollviewer ×1
select ×1
text ×1
triggers ×1
validation ×1
winforms ×1
wpftoolkit ×1