我有一個Datagrid。在這方面,我走在如何讀取圖像x:在c#後面的代碼中的名稱wpf
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<Image name:image1 source="">
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
圖像控件現在,我想隱藏此圖像「圖像1」和可見在需要的時候使用這個屬性
image1.Visibility = Visibility.Hidden;
和image1.Visibility = Visibility.Visible;
但問題是,我無法在後面的代碼中讀取圖像控件的「image1」名稱來完成此操作。
任何人都可以幫助我做到這一點的最佳方式,以及如何從數據網格中讀取代碼中的名稱。
在此先感謝
由於沒有一個好的[mcve]能夠清楚地顯示你的程序是如何工作的(或者任何有效的代碼,真的......你發佈的代碼甚至沒有資格這麼做),所以不可能提供實際的答案。但是,您應該使用'DataTemplate'來呈現視圖模型的數據,因此控制可見性的方法是向視圖模型中添加一個屬性,以指定您想要的可見性,並將其綁定到'Image.Visibility '模板中的屬性。您可以使用'Visibility'值,或者您可能更願意在綁定中使用非視圖數據類型(例如'bool')和'IValueConverter'。 –
換句話說,你問的是錯誤的問題。你不需要爲你的'Image'元素創建一個名稱,不用擔心你需要通過名稱找到它。正確完成,您可以控制能見度而不用任何這種方式。 –
您無法按名稱訪問數據模板中的任何控件。在代碼隱藏中,嘗試在數據網格上創建「ItemSource」後訪問。你有所有你添加的項目。現在,您可以通過源掃描來查找所需的圖像控件,並將可見性設置爲隱藏/可見。還chceck:https://social.msdn.microsoft.com/Forums/vstudio/en-US/29ecc8ee-26ee-4331-8f97-35ff9d3e6886/how-to-access-items-in-a-datatemplate-for-wpf -listview?forum = wpf – Niewidzialny