以下是有什么区别的:
所有这些依赖项属性都在Selector类中定义.我经常混淆SelectedItem与SelectedValue,并SelectedValue用SelectedValuePath.
我想知道它们之间的区别,并且当我们使用它们,尤其是SelectedValue和SelectedValuePath.请用一些简单的例子解释它们的用法.
如何检索在WPF树视图中选择的项目?我想在XAML中这样做,因为我想绑定它.
你可能会认为它SelectedItem显然是不存在的只是readonly因此无法使用.
这就是我想要做的:
<TreeView ItemsSource="{Binding Path=Model.Clusters}"
ItemTemplate="{StaticResource ClusterTemplate}"
SelectedItem="{Binding Path=Model.SelectedCluster}" />
Run Code Online (Sandbox Code Playgroud)
我想绑定SelectedItem到我的模型上的属性.
但这给了我错误:
'SelectedItem'属性是只读的,不能通过标记设置.
编辑: 好的,这是我解决这个问题的方式:
<TreeView
ItemsSource="{Binding Path=Model.Clusters}"
ItemTemplate="{StaticResource HoofdCLusterTemplate}"
SelectedItemChanged="TreeView_OnSelectedItemChanged" />
Run Code Online (Sandbox Code Playgroud)
在我的xaml的codebehindfile中:
private void TreeView_OnSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
Model.SelectedCluster = (Cluster)e.NewValue;
}
Run Code Online (Sandbox Code Playgroud) 我有一个方法:
private void DeletePuzzle(object param)
{
}
Run Code Online (Sandbox Code Playgroud)
param是一个System.Windows.Controls.SelectedItemCollection,我从WPF ListView的SelectedItems财产得到的.
不知何故,我似乎无法将它从一个对象转换为任何有用的东西.我无法创建一个System.Windows.Controls.SelectedItemCollection因为它的保护级别,并且param不会转换为IList,ICollection或者IEnumerable.
我怎样才能遍历param的项目?
我有一个DataGrid,绑定到Database表,我需要获取所选行的内容DataGrid,例如,我想在MessageBox所选行的内容中显示.
示例DataGrid:

所以,如果我选择第二行,我MessageBox必须显示如下内容:646 Jim Biology.
WPF TreeView中的所选项目具有深蓝色背景和"尖锐"角.今天看起来有点过时了:

我想改变背景,看起来像在Windows 7的资源管理器中(有/无焦点):

我到目前为止所尝试的并没有删除原始的深蓝色背景,而是在它上面画了一个圆形边框,这样你就可以看到边缘和左边的深蓝色 - 丑陋.

有趣的是,当我的版本没有焦点时,它看起来很不错:

我想不要重新定义控件模板,如此处或此处所示.我想设置所需的最小属性,使所选项目在资源管理器中看起来像.
替代方案:我也很乐意将焦点选中的项目看起来像我现在所做的那样没有焦点.失去焦点时,颜色应从蓝色变为灰色.
这是我的代码:
<TreeView
x:Name="TreeView"
ItemsSource="{Binding TopLevelNodes}"
VirtualizingStackPanel.IsVirtualizing="True"
VirtualizingStackPanel.VirtualizationMode="Recycling">
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="BorderBrush" Value="#FF7DA2CE" />
<Setter Property="Background" Value="#FFCCE2FC" />
</Trigger>
</Style.Triggers>
</Style>
</TreeView.ItemContainerStyle>
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type viewmodels:ObjectBaseViewModel}" ItemsSource="{Binding Children}">
<Border Name="ItemBorder" CornerRadius="2" Background="{Binding Background, RelativeSource={RelativeSource AncestorType=TreeViewItem}}"
BorderBrush="{Binding BorderBrush, RelativeSource={RelativeSource AncestorType=TreeViewItem}}" BorderThickness="1">
<StackPanel Orientation="Horizontal" Margin="2">
<Image Name="icon" Source="/ExplorerTreeView/Images/folder.png"/>
<TextBlock Text="{Binding Name}"/> …Run Code Online (Sandbox Code Playgroud) 我有一个wpf列表框,显示一个文本框列表.当我单击文本框时,列表框选择不会更改.我必须单击TextBox旁边的以选择列表框项.是否需要为Textbox设置一些属性以将click事件转发到Listbox?
我有一个带有JavaFX 2的Java桌面应用程序,在我的FX中我有一个TabPane.我想设置默认选项卡.换句话说,我想将选项卡设置为选中.我发现有多种方法可以找出哪个选项卡被选中,setSelectionModel()但我找不到如何使用它.
TabPane tabPane = new TabPane();
Tab tab0 = new Tab("blue");
tab.setContent(new Rectangle(200,200, Color.BLUE));
Tab tab1 = new Tab("green");
tab.setContent(new Rectangle(200,200, Color.GREEN));
tabPane.getTabs().addAll(tab0, tab1);
Run Code Online (Sandbox Code Playgroud) 我有一个列表视图contactslist.我编写了代码来突出显示所选项目ListView.这是工作.当我点击1项时,它突出显示该项目,但问题是如果我点击其他项目也突出显示该项目.我想只突出显示所选项目.当我点击另一个项目时,之前的选择将不复存在.
arg1.setBackgroundResource(R.drawable.highlighter);
Run Code Online (Sandbox Code Playgroud)
这是单击侦听器中用于突出显示所选项的代码.请帮助我.
更新
我正在设置适配器中行的背景:
public int[] colors = new int[]{0xFFedf5ff, 0xFFFFFFFF};
public int colorPos;
[...]
colorPos = position % colors.length;
row.setBackgroundColor(colors[colorPos]);
Run Code Online (Sandbox Code Playgroud) 我是android的新手,我有一个代码,我在列表视图中放置了按钮.我的清单是......
Number | Name | ID (visibility = gone) | Level | button1 | button2
Run Code Online (Sandbox Code Playgroud)
按钮1和按钮2的情况不同.我已经在按钮上应用了监听器,但是当我尝试从列表中获取ID时,它总是向我显示最后一个ID.
如何知道单击了哪个按钮,相关字段的名称和ID.
我在按钮上放置了按钮和监听器getView(...).
public class ComboboxItem {
public string Text { get; set; }
public string Value { get; set; }
public override string ToString() { return Text; }
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
int selectedIndex = comboBox1.SelectedIndex;
int selecteVal = (int)comboBox1.SelectedValue;
ComboboxItem selectedCar = (ComboboxItem)comboBox1.SelectedItem;
MessageBox.Show(String.Format("Index: [{0}] CarName={1}; Value={2}", selectedIndex, selectedCar.Text, selecteVal));
}
Run Code Online (Sandbox Code Playgroud)
我正在添加它们:
ComboboxItem item = new ComboboxItem();
item.Text = cd.Name;
item.Value = cd.ID;
this.comboBox1.Items.Add(item);
Run Code Online (Sandbox Code Playgroud)
我一直得到一个NullReferenceExeption,不知道为什么.文本似乎显示得很好.