Questions tagged «datatemplate»



6
从DataTemplate访问父DataContext
我有一个ListBox绑定到ViewModel上的子集合。列表框项是根据父ViewModel上的属性在数据模板中设置样式的: <Style x:Key="curveSpeedNonConstantParameterCell"> <Style.Triggers> <DataTrigger Binding="{Binding Path=DataContext.CurveSpeedMustBeSpecified, ElementName=someParentElementWithReferenceToRootDataContext}" Value="True"> <Setter Property="Control.Visibility" Value="Hidden"></Setter> </DataTrigger> </Style.Triggers> </Style> 我收到以下输出错误: System.Windows.Data Error: 39 : BindingExpression path error: 'CurveSpeedMustBeSpecified' property not found on 'object' ''BindingListCollectionView' (HashCode=20467555)'. BindingExpression:Path=DataContext.CurveSpeedMustBeSpecified; DataItem='Grid' (Name='nonConstantCurveParametersGrid'); target element is 'TextBox' (Name=''); target property is 'NoTarget' (type 'Object') 因此,如果我将绑定表达式更改为"Path=DataContext.CurrentItem.CurveSpeedMustBeSpecified"它可以工作,但前提是父用户控件的datacontext是a BindingListCollectionView。这是不可接受的,因为其余的用户控件会自动绑定到CurrentItemon的属性BindingList。 如何在样式内部指定绑定表达式,以便无论父数据上下文是集合视图还是单个项目,绑定表达式都可以工作?

4
连接字符串,而不使用一堆TextBlocks
我想在WPF ItemsControl中显示Customer对象的列表。我为此创建了一个DataTemplate: <DataTemplate DataType="{x:Type myNameSpace:Customer}"> <StackPanel Orientation="Horizontal" Margin="10"> <CheckBox"></CheckBox> <TextBlock Text="{Binding Path=Number}"></TextBlock> <TextBlock Text=" - "></TextBlock> <TextBlock Text="{Binding Path=Name}"></TextBlock> </StackPanel> </DataTemplate> 因此,我基本上想要的是一个简单的列表(带有复选框),其中包含NUMBER-NAME。没有办法直接在绑定部分中连接数字和名称吗?
88 .net  wpf  datatemplate 

3
如何使用C#代码构建DataTemplate?
我正在尝试为winform互操作构建下拉列表,并且正在代码中创建下拉列表。但是,在基于指定的DataTemplate绑定数据时遇到问题。 我想念什么? drpCreditCardNumberWpf = new ComboBox(); DataTemplate cardLayout = new DataTemplate {DataType = typeof (CreditCardPayment)}; StackPanel sp = new StackPanel { Orientation = System.Windows.Controls.Orientation.Vertical }; TextBlock cardHolder = new TextBlock {ToolTip = "Card Holder Name"}; cardHolder.SetBinding(TextBlock.TextProperty, "BillToName"); sp.Children.Add(cardHolder); TextBlock cardNumber = new TextBlock {ToolTip = "Credit Card Number"}; cardNumber.SetBinding(TextBlock.TextProperty, "SafeNumber"); …
81 c#  wpf  datatemplate 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.