下面的代码有一个简单的绑定,它使用完全相同的Binding表示法将名为MyTextBlock的TextBlock的Text绑定到TextBox的Text和ToolTip属性:
<StackPanel>
<TextBlock x:Name="MyTextBlock">Foo Bar</TextBlock>
<TextBox Text="{Binding ElementName=MyTextBlock, Path=Text, StringFormat='It is: \{0\}'}"
ToolTip="{Binding ElementName=MyTextBlock, Path=Text, StringFormat='It is: \{0\}'}" />
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
绑定还使用.NET 3.5 SP1引入的StringFormat属性,该属性对于上面的Text属性工作正常但似乎在工具提示中被破坏.预期的结果是"它是:Foo Bar",但是当您将鼠标悬停在TextBox上时,ToolTip仅显示绑定值,而不是字符串格式化的值.有任何想法吗?
我有一些在后面的代码中实例化的对象,例如,XAML被称为window.xaml并且在window.xaml.cs中
protected Dictionary<string, myClass> myDictionary;
Run Code Online (Sandbox Code Playgroud)
如何仅使用XAML标记将此对象绑定到列表视图?
更新:
(这正是我在测试代码中所拥有的):
<Window x:Class="QuizBee.Host.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="{Binding windowname}" Height="300" Width="300"
DataContext="{Binding RelativeSource={RelativeSource Self}}">
<Grid>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
并在代码隐藏
public partial class Window1 : Window
{
public const string windowname = "ABCDEFG";
public Window1()
{
InitializeComponent();
}
}
Run Code Online (Sandbox Code Playgroud)
假设标题应该变成"ABCDEFG"吧?但它最终没有显示任何东西.
我有一个WPF Window,在某个地方有一个ListView我绑定List<string>到的地方.
现在在什么地方我ListView有一个TextBox和Content属性设置为{Binding}.
但这是速记.如何编写完整绑定以绑定到自身?
{Binding Path=Self}不起作用,也不起作用{Binding Self}(后者是前者的捷径).
当我在C#中发生早期/晚期绑定时,我正试图解决这个问题.
非虚方法总是早期绑定.虚方法总是后期绑定:编译器插入额外的代码来解析在执行时绑定到的实际方法并检查类型安全性.因此,子类型多态性使用后期绑定.
使用反射调用方法是后期绑定的一个示例.我们编写代码来实现这一点,而不是编译器.(例如,调用COM组件.)
当Option Strict关闭时,VB.NET支持隐式后期绑定.当对象被赋值为声明为Object类型的变量时,该对象是后期绑定的.VB编译器在执行时插入代码以绑定到正确的方法并捕获无效的调用.C#不支持此功能.
我正朝着正确的方向前进吗?
如何调用委托并通过接口引用调用方法?是早期还是晚期绑定?
我有一个简单的List<string>,我希望它显示在一个DataGridView列中.
如果列表包含更复杂的对象,则只需将列表建立为其DataSource属性的值.
但是当这样做时:
myDataGridView.DataSource = myStringList;
Run Code Online (Sandbox Code Playgroud)
我得到一个名为的列,Length并显示字符串的长度.
如何在列中显示列表中的实际字符串值?
我有一个带有图像的Row的数据网格.此图像与某个状态的触发器绑定.当状态改变时我想改变图像.
模板本身在DataGridTemplateColumn的HeaderStyle上设置.此模板具有一些绑定.第一个绑定日显示它是什么日期,状态通过触发器更改图像.
这些属性在ViewModel中设置.
属性:
public class HeaderItem
{
public string Day { get; set; }
public ValidationStatus State { get; set; }
}
this.HeaderItems = new ObservableCollection<HeaderItem>();
for (int i = 1; i < 15; i++)
{
this.HeaderItems.Add(new HeaderItem()
{
Day = i.ToString(),
State = ValidationStatus.Nieuw,
});
}
Run Code Online (Sandbox Code Playgroud)
数据网格:
<DataGrid x:Name="PersoneelsPrestatiesDataGrid" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
AutoGenerateColumns="False" SelectionMode="Single" ItemsSource="{Binding CaregiverPerformances}" FrozenColumnCount="1" >
<DataGridTemplateColumn HeaderStyle="{StaticResource headerCenterAlignment}" Header="{Binding HeaderItems[1]}" Width="50">
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBox Text="{ Binding Performances[1].Duration,Converter={StaticResource timeSpanConverter},Mode=TwoWay}"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock TextAlignment="Center" Text="{ Binding …Run Code Online (Sandbox Code Playgroud) 在JSF中有很多材料区分value属性和binding属性.
我对这两种方法如何彼此不同感兴趣.鉴于:
public class User {
private String name;
private UICommand link;
// Getters and setters omitted.
}
Run Code Online (Sandbox Code Playgroud)
<h:form>
<h:commandLink binding="#{user.link}" value="#{user.name}" />
</h:form>
Run Code Online (Sandbox Code Playgroud)
value指定属性时会发生什么变化.getter运行以返回bean 的name属性值User.该值将打印到HTML输出.
但我无法理解它是如何binding运作的.生成的HTML如何维护与bean link属性的绑定User?
下面是手动美化和注释后生成的输出的相关部分(注意id j_id_jsp_1847466274_1是自动生成的,并且有两个隐藏的输入小部件).我正在使用Sun的JSF RI 1.2版.
<form action="/TestJSF/main.jsf" enctype="application/x-www-form-urlencoded"
id="j_id_jsp_1847466274_1" method="post" name="j_id_jsp_1847466274_1">
<input name="j_id_jsp_1847466274_1" type="hidden" value="j_id_jsp_1847466274_1">
<a href="#" onclick="...">Name</a>
<input autocomplete="off" id="javax.faces.ViewState" name="javax.faces.ViewState"
type="hidden" value="-908991273579182886:-7278326187282654551">
</form>
Run Code Online (Sandbox Code Playgroud)
在哪里binding存放在这里?
我有两个简单的Model类和一个ViewModel ...
public class GridItem
{
public string Name { get; set; }
public int CompanyID { get; set; }
}
public class CompanyItem
{
public int ID { get; set; }
public string Name { get; set; }
}
public class ViewModel
{
public ViewModel()
{
GridItems = new ObservableCollection<GridItem>() {
new GridItem() { Name = "Jim", CompanyID = 1 } };
CompanyItems = new ObservableCollection<CompanyItem>() {
new CompanyItem() { ID = 1, Name = "Company 1" },
new …Run Code Online (Sandbox Code Playgroud) binding ×10
wpf ×6
c# ×3
.net ×2
appsettings ×1
components ×1
data-binding ×1
datagrid ×1
datagridview ×1
image ×1
jsf ×1
jsf-2 ×1
late-binding ×1
self ×1
wpfdatagrid ×1