我有一個模塊化 WPF 應用程式 - Shell、Module1、Module2、Module3。每個模塊都有這樣定義的視圖:
<UserControl>
<TextBox x:Name="DefaultControl"/>
<UserControl.Tag>
<Binding ElementName="DefaultControl"/>
</UserControl.Tag>
</UserControl>
Shell 有 MainView,它使用 WPFToolkit BusyIndi??cator 控制元件。MainView 定義如下:
<Window>
<xctk:BusyIndicator IsBusy="{Binding ElementName=MainRegion, Path=Content.DataContext.IsBusy}"
FocusAfterBusy="{Binding Path=Content.Tag, ElementName=MainRegion}">
<ContentControl x:Name="MainRegion">
</ContentControl>
</xctk:BusyIndicator>
</Window>
BusyIndi??cator.FocusAfterBusy 旨在在 IsBusy 變為 False 時將焦點設定在任何名為 DefaultControl 的視圖元素上。使用 Tag 屬性進行系結時,它作業正常。但是現在我想為此使用一個名為 DefaultControl(物件)的簡單附加屬性。視圖變成:
<UserControl>
<TextBox x:Name="DefaultControl"/>
<ext:FocusExtension.DefaultControl>
<Binding ElementName="DefaultControl"/>
</ext:FocusExtension.DefaultControl>
</UserControl>
我應該如何更改 BusyIndi??cator.FocusAfterBusy="{Binding Path=Content.Tag, ElementName=MainRegion}" 中的 Path 以系結到 MainRegion.Content 的附加屬性 (DefaultControl)?附屬財產:
public static readonly DependencyProperty DefaultControlProperty = DependencyProperty.RegisterAttached(
"DefaultControl",
typeof(object),
typeof(FocusExtension),
new PropertyMetadata(null));
public static object GetDefaultControl(DependencyObject obj)
{
return (object)obj.GetValue(DefaultControlProperty);
}
public static void SetDefaultControl(DependencyObject obj, object value)
{
obj.SetValue(DefaultControlProperty, value);
}
uj5u.com熱心網友回復:
嘗試這個:
FocusAfterBusy="{Binding Path=Content.(ext:FocusExtension.DefaultControl),
ElementName=MainRegion}"
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/313944.html
