Edw*_*uay 16 c# wpf xaml tabcontrol focus
如何告诉我的TabControl将焦点设置为其第一个TabItem,如下所示:
伪代码:
((TabItem)(MainTabControl.Children[0])).SetFocus();
Run Code Online (Sandbox Code Playgroud)
Mar*_*age 26
这个怎么样?
MainTabControl.SelectedIndex = 0;
Run Code Online (Sandbox Code Playgroud)
小智 8
this.tabControl1.SelectedTab = this.tabControl1.TabPages["tSummary"];
Run Code Online (Sandbox Code Playgroud)
我发现通常最好的做法是命名您的标签并通过名称访问它,以便在其他人(或您)添加或替换选项卡作为更新的一部分时,您不必通过您的代码并找到并修复所有那些"硬编码"索引.希望这可以帮助.
我意识到很久以前就已经回答了这个问题,但是更好的解决方案是将项目绑定到模型中的集合并公开选定项目绑定的属性.
XAML:
<!-- MyTemplateForItem represents your template -->
<TabControl ItemsSource="{Binding MyCollectionOfItems}"
SelectedItem="{Binding SelectedItem}"
ContentTemplate="{StaticResource MyTemplateForItem}">
</TabControl>
Run Code Online (Sandbox Code Playgroud)
代码背后:
public ObservableCollection<MyItem> MyCollectionOfItems {
get;
private set;
}
private MyItem selectedItem;
public MyItem SelectedItem{
get { return selectedItem; }
set {
if (!Object.Equals(selectedItem, value)) {
selectedItem = value;
// Ensure you implement System.ComponentModel.INotifyPropertyChanged
OnNotifyPropertyChanged("SelectedItem");
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在,您需要做的就是设置项目:
MyItem = someItemToSelect;
Run Code Online (Sandbox Code Playgroud)
您可以在SelectedIndex属性中使用相同的逻辑,此外,您可以同时使用这两个逻辑.
这种方法允许您正确地将模型与UI分离,这可以允许您替换TabControl其他内容,但不要求您更改基础模型.
| 归档时间: |
|
| 查看次数: |
40620 次 |
| 最近记录: |