[英]How to bind XmlDataProvider property of viewmodel with XmlDataProvider in view?
[英]How to bind to a property in view but not in viewmodel?
我有一些控件,其值在視圖中使用,但在視圖模型中沒有任何關系。 我想將控件綁定到視圖中的屬性,而不必將其復制到視圖模型中。
根據類似問題的答復 ,有可能,我正在使用以下代碼來實現這一目標。 但是,當我沒有看到預期的結果時,因此我猜測我無意中綁定了旗桿,而不是預期的屬性。
XAML
<DatePicker x:Name="Uno"
SelectedDate="{Binding StartDate, Source={x:Static Application.Current}}"
SelectedDateChanged="DatePicker_OnSelectedDateChanged" />
<DatePicker x:Name="Due"
SelectedDate="{Binding StartDate, Source={x:Static Application.Current}}"
SelectedDateChanged="DatePicker_OnSelectedDateChanged" />
C#
public partial class ViewWindow : Window
{
public static DateTime StartDate { get; set; }
...
}
我的代碼中缺少什么? 還是我誤解了答復並以錯誤的方式進行處理?
這個:
x:Static Application.Current
嘗試將Application.Current
設置為特定綁定表達式的綁定源。 但是,顯然,您不想訪問諸如Application.Current.StartDate
類的東西(我想,您的App
類未定義此類屬性)。
實際上,我從您的屬性定義中錯過了static
關鍵字。
如果您使用的是.NET 4.5或更高版本,則可以通過以下方式為靜態屬性編寫綁定路徑:
<DatePicker x:Name="Uno"
SelectedDate="{Binding Path=(local:ViewWindow.StartDate)}"
SelectedDateChanged="DatePicker_OnSelectedDateChanged" />
local
這里是一個命名空間,在其中定義了ViewWindow
。
否則,請使用RelativeSource
標記擴展(當該屬性是instance時,這也適用):
<DatePicker x:Name="Uno"
SelectedDate="{Binding StartDate,
RelativeSource={RelativeSource Mode=FindAncestor,
AncestorType={x:Type Window}}}"
SelectedDateChanged="DatePicker_OnSelectedDateChanged" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.