这两个绑定有什么区别:
<ControlTemplate TargetType="{x:Type Button}">
<Border BorderBrush="{TemplateBinding Property=Background}">
<ContentPresenter />
</Border>
</ControlTemplate>
Run Code Online (Sandbox Code Playgroud)
和
<ControlTemplate TargetType="{x:Type Button}">
<Border BorderBrush="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Background}">
<ContentPresenter />
</Border>
</ControlTemplate>
Run Code Online (Sandbox Code Playgroud)
?
让我们有一个Command
绑定到自定义命令的按钮属性.
我什么时候应该实施ICommand
,何时衍生出来RoutedCommand
?我看到RoutedCommand实现了ICommand.
在哪种情况下我需要补充一个ICommand
?那么MVVM模型呢?哪一种更适合这个目的?
我最近做了一个UserControl,花了很长时间,因为我不得不使用自定义依赖属性等等...
无论如何,它只是一堆3个控件:TextBox,Popup with Hierarchical Tree.
现在我意识到我可能只能写一个ControlTemplate.那么使用UserControl有什么好处?
我正在ASP.NET站点上进行一些Excel导出.除了编码之外,一切都有效.当我在Excel中打开它时,它看起来像这样:
Eingabe KostenjeGerätGerät:Gerätebezeichnung:BetriebsmittelHeizÃlinâ€:4 Dieselverbrauchinâ€:4
这是我的代码:
Response.Clear();
Response.ContentType = "application/ms-excel";
Response.AddHeader("Content-Disposition", "inline;filename=NachkalkGeraete.xls;");
var writer = new HtmlTextWriter(Response.Output);
SomeControl.RenderControl(writer); /* FormView, Table, DataGrid... */
Response.End();
Run Code Online (Sandbox Code Playgroud)
我已经尝试过显式设置编码..但没有发生任何变化:
Response.Clear();
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", "attachment; filename=NachkalkGeraete.xls");
Response.BufferOutput = true;
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.Charset = "UTF-8";
EnableViewState = false;
System.IO.StringWriter tw = new System.IO.StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
SomeControl.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
Run Code Online (Sandbox Code Playgroud)
有什么问题,拜托?
假设你有这个文件:
x
a
b
c
x
x
a
b
c
x
x
Run Code Online (Sandbox Code Playgroud)
你想用Notepad ++ 找到序列abc(并选择整行3行).请问如何在正则表达式中表达换行符?
假设我们有一个DataSource绑定到Database的集合.当然没有空项.如何将void项添加到ComboBox中,以便在第一次加载用户时会看到一个空字符串.我不想在Collection中添加一个dummy/void对象.最适合XAML.有什么建议?
在表中创建外键约束并在MS SQL Management Studio中创建脚本时,它看起来像这样.
ALTER TABLE T1 WITH CHECK ADD CONSTRAINT FK_T1 FOREIGN KEY(project_id)
REFERENCES T2 (project_id)
GO
ALTER TABLE T1 CHECK CONSTRAINT FK_T1
GO
Run Code Online (Sandbox Code Playgroud)
我不明白的是第二个改变了检查约束的目的是什么.是不是足够创建FK约束?您是否必须添加检查约束以确保参考完整性?
另一个问题:当你直接在列定义中写它时,它会是什么样子?
CREATE TABLE T1 (
my_column INT NOT NULL CONSTRAINT FK_T1 REFERENCES T2(my_column)
)
Run Code Online (Sandbox Code Playgroud)
这不够吗?
我正在使用Windows窗体DataGridView来显示MyObject
对象的通用列表.
首先,我将此集合包装到BindingSource
Collection中,然后:
dataGridView.DataSource = myBindingSource;
Run Code Online (Sandbox Code Playgroud)
我想要做的是允许用户通过单击表示MyObject中具体属性的列标题对列进行排序.
我读过一些文章,我应该在绑定之前进行排序.但是,如果我想实时对列进行排序,那么它就无法帮助我.
问题是,我到底需要做什么,所以我可以看到 DataGridView中的排序箭头,我可以对每一列进行排序?
嗨,假设这两种方法:
private List<IObjectProvider> GetProviderForType(Type type)
{
List<IObjectProvider> returnValue = new List<IObjectProvider>();
foreach (KeyValuePair<Type, IObjectProvider> provider in _objectProviders)
{
if ((provider.Key.IsAssignableFrom(type) ||
type.IsAssignableFrom(provider.Key)) &&
provider.Value.SupportsType(type))
{
returnValue.Add(provider.Value);
}
}
return returnValue;
}
private IEnumerable<IObjectProvider> GetProviderForType1(Type type)
{
foreach (KeyValuePair<Type, IObjectProvider> provider in _objectProviders)
if ((provider.Key.IsAssignableFrom(type) ||
type.IsAssignableFrom(provider.Key)) &&
provider.Value.SupportsType(type))
yield return provider.Value;
}
Run Code Online (Sandbox Code Playgroud)
哪一个更快?当我查看第一种方法时,我看到内存是为List分配的,我认为不需要它.该IEnumerable的方法似乎要快给我.
例如,假设你打电话
int a = GetProviderForType(myType).Count;
int b = GetProviderForType1(myType).Count();
Run Code Online (Sandbox Code Playgroud)
现在,另一个问题是,这两个之间是否有性能差异?
你怎么看?
我已经编写了带有搜索扩展名的自定义WPF控件,让我们为它命名MyControl
.控制是一个ItemsControl
阶级的后代.
所以我像这样将数据源提供给它:
控件本身使用
protected override void OnItemsSourceChanged(System.Collections.IEnumerable oldValue, System.Collections.IEnumerable newValue)
{
if (newValue != null)
{
ICollectionView view = CollectionViewSource.GetDefaultView(newValue);
view.Filter += this.FilterPredicate;
}
if (oldValue != null)
{
ICollectionView view = CollectionViewSource.GetDefaultView(oldValue);
view.Filter -= this.FilterPredicate;
}
base.OnItemsSourceChanged(oldValue, newValue);
}
Run Code Online (Sandbox Code Playgroud)
过滤源集合的视图(从而在内部ListBox中显示它).
现在假设我们在XAML中定义了10个具有相同DynamicSource的MyControl.问题是如果其中一个在源集合上应用Filter,它也会影响所有其他实例.
如何更改控件以避免此行为?
wpf ×5
c# ×2
asp.net ×1
combobox ×1
constraints ×1
controls ×1
datagridview ×1
encoding ×1
filter ×1
find ×1
foreign-keys ×1
icommand ×1
ienumerable ×1
list ×1
mvvm ×1
notepad++ ×1
performance ×1
sorting ×1
t-sql ×1