我想在给定索引的情况下更改名为“ myGrid”的网格内特定行的可见性。 我首先想到了要使用的特定行:
var row = Grid.GetRow(myGrid.Children[index]);
然后,按如下所示更改“ row”的IsVisible属性:
row.IsVisible = false;
不幸的是,第二行代码不合法...
我不想绑定每一行的“ IsVisible”属性。在我看来,这是不必要的工作。
任何解决此问题的建议将不胜感激!
答案 0 :(得分:1)
我认为最好的选择是将行中每个控件的IsVisible属性绑定到视图模型中的单个属性。然后,您要做的就是将视图模型属性的值更改为false
,整个行将被隐藏。
答案 1 :(得分:0)
原因:
WITH C AS(
SELECT ROW_NUMBER() OVER(PARTITION BY mem.memberid,DiagnosisCategoryID ORDER BY md.DiagnosisID ASC) AS ROWNUM,
mem.MemberID,
mem.FirstName,
mem.LastName,
md.DiagnosisID,
d.diagnosisdescription,
dc.DiagnosisCategoryID,
dc.CategoryDescription,
dc.CategoryScore
FROM dbo.member mem
LEFT JOIN dbo.Memberdiagnosis md on mem.MemberID = md.MemberID
LEFT JOIN Diagnosis d on md.DiagnosisID = d.DiagnosisID
LEFT JOIN DiagnosisCategoryMap dcm on d.DiagnosisID = dcm.DiagnosisID
LEFT JOIN DiagnosisCategory dc on dc.DiagnosisCategoryID = dcm.DiagnosisCategoryID
),D AS(
SELECT min(categoryscore) AS mincat
,MemberID
FROM dbo.member mem
LEFT JOIN dbo.Memberdiagnosis md on mem.MemberID = md.MemberID
LEFT JOIN Diagnosis d on md.DiagnosisID = d.DiagnosisID
LEFT JOIN DiagnosisCategoryMap dcm on d.DiagnosisID = dcm.DiagnosisID
LEFT JOIN DiagnosisCategory dc on dc.DiagnosisCategoryID = dcm.DiagnosisCategoryID
GROUP BY MemberID
)
SELECT C.MemberID,
C.FirstName,
C.LastName,
C.DiagnosisID AS MostSevereDiagnosis,
C.diagnosisdescription,
C.DiagnosisCategoryID,
C.CategoryDescription,
C.CategoryScore,
CASE WHEN D.mincat = C.CategoryScore THEN 1 ELSE 0 END AS IsMostSevereCategory
FROM C
LEFT JOIN D ON (C.MemberID = D.MemberID)
WHERE ROWNUM = 1
返回一个int值。因此,您无法设置GetRow
之类的属性
解决方案:
如果要隐藏特定行,可以将rowHeight设置为IsVisible
。
0
答案 2 :(得分:-1)
正如其他人所说,您正在尝试更改索引的可见性(肯定是错误的)。
您无法获取网格的行并设置其可见性。相反,您应该在行内设置视图的可见性。
但是您应该注意,如果您为该行高度指定了固定的高度甚至星形尺寸,那么这样做可能会在Grid中看到一个空白空间。
最好将行高设置为自动。这样,当该行内的视图不可见时,该行的高度将减小为0。