[英]Binding to a property outside DataGrid
我有多個DataGridTemplateColumn
。 在這些列之一中,我有一個按鈕,當用戶選擇該行以及CodeFonc
等於1時,我想顯示該按鈕。(CodeFonc不屬於DataGrid / SelectedItem)
ViewModel:
private int _codeFonc;
public int CodeFonc
{
get { return _codeFonc; }
set
{
_codeFonc = value;
NotifyOfPropertyChange("CodeFonc");
}
}
XAML:
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}}, Path=IsSelected}" Value="True"/>
<Condition Binding="{Binding Path=CodeFonc, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Value="1" />
</MultiDataTrigger.Conditions>
<Setter Property="Button.Visibility" Value="Visible" />
</MultiDataTrigger>
我從另一個窗口獲取CodeFonc,但我100%確信它的值為1,因為我在調試時已確認。
最重要的是:如果我曾經用DataGrid(SelectedItem)本身中的任何內容替換CodeFonc
,則該按鈕將正常顯示。 所以我的猜測是,因為上面的XAML位於DataGrid內部,因此以某種方式對其進行了限制嗎?
如果尚未在xaml中設置DataContext
,則可以將其設置為ViewModel
如下所示:
<Window.DataContext>
<local:ViewModel/>
</Window.DataContext>
其中ViewModel
是ViewModel
的名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.