我要做的是:
我有一个带有多个选项卡的TabControl。
每个tabControlItem.Content都指向作为用户控件的个人详细信息
每个BookDetails都有一个名为IsEditMode的依赖属性
我希望在所选选项卡更改时更新TabControl之外名为ToggleEditButton的控件。
我想我可以通过改变ToggleEditButton的数据上下文来做到这一点,因为它似乎不起作用(但我对WPF是个新手,所以我可能会离开)
更改数据上下文的代码:
private void tabControl1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (e.Source is TabControl)
{
if (e.Source.Equals(tabControl1))
{
if (tabControl1.SelectedItem is CloseableTabItem)
{
var tabItem = tabControl1.SelectedItem as CloseableTabItem;
RibbonBook.DataContext = tabItem.Content as BookDetails;
ribbonBar.SelectedTabItem = RibbonBook;
}
}
}
}
BookDetails下的DependencyProperty:
public static readonly DependencyProperty IsEditModeProperty =
DependencyProperty.Register("IsEditMode", typeof (bool), typeof (BookDetails),
new PropertyMetadata(true));
public bool IsEditMode
{
get { return (bool)GetValue(IsEditModeProperty); }
set
{
SetValue(IsEditModeProperty, value);
SetValue(IsViewModeProperty, !value);
}
}
以及相关的XAML:
<odc:RibbonTabItem Title="Book" Name="RibbonBook">
<odc:RibbonGroup Title="Details" Image="img/books2.png" IsDialogLauncherVisible="False">
<odc:RibbonToggleButton Content="Edit"
Name="ToggleEditButton"
odc:RibbonBar.MinSize="Medium"
SmallImage="img/edit_16x16.png"
LargeImage="img/edit_32x32.png"
Click="Book_EditDetails"
IsChecked="{Binding Path=IsEditMode, Mode=TwoWay}"/>
...
我要完成两件事,一是让按钮反映可见选项卡的IsEditMode,二是让按钮在不隐藏代码的情况下更改属性值(如果可能的话)
任何帮助都将得到极大的重视。