簡體   English   中英

綁定到DataGrid外部的屬性

[英]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>

其中ViewModelViewModel的名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM